Encoding Byte-Like Objects to Address TypeError
当尝试通过套接字通信修改用户输入时,您可能会在 Python 中遇到以下错误3:
TypeError: a bytes-like object is required, not 'str'
要解决此问题,您需要在通过套接字发送输入消息之前对其进行编码。 Python 3 需要类字节对象来进行网络数据传输,而不是字符串。
更正后的代码应包括以下调整:
clientSocket.sendto(message.encode(),(serverName, serverPort))
通过对消息变量进行编码,将其转换为可以通过网络传输的类似字节的对象。
同样,在服务器端,您应该对接收到的数据进行解码在打印之前确保它按预期显示:
modifiedMessage, serverAddress = clientSocket.recvfrom(2048) print (modifiedMessage.decode())
此修改有效解决了 TypeError 问题,使您能够通过套接字通信成功传输和修改用户输入。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3