Python套接字错误TypeError:需要一个类似字节的对象,而不是带有send函数的'str'

Python套接字错误TypeError:需要一个类似字节的对象,而不是带有send函数的'str',第1张

Python套接字错误TypeError:需要一个类似字节的对象,而不是带有send函数的'str'

发生此错误的原因是,在Python 3中,字符串是Unipre,但是在网络上传输时,数据需要改为字节。所以…一些建议:

  1. 建议使用
    c.sendall()
    而不是,
    c.send()
    以防止可能没有通过一个呼叫发送整个msg的问题(请参阅docs)。
  2. 对于文字,添加
    'b'
    for字节字符串:
    c.sendall(b'Thank you for connecting')
  3. 对于变量,您需要将Unipre字符串编码为字节字符串(请参见下文)

最佳解决方案(应同时使用2.x和3.x):

output = 'Thank you for connecting'c.sendall(output.enpre('utf-8'))

结束语/背景知识 :这在Python 2中不是问题,因为字符串已经是字节字符串了-
您的OP代码将在该环境中完美运行。Unipre字符串已在1.6和2.0版本中添加到Python中,但在它们成为默认字符串类型之前一直落后到3.0。也看到这个类似的问题,以及这一个。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5668496.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存