以下是尝试使用套接字修改用户提供的输入的代码:
from socket import *
serverName = '127.0.0.1'
serverPort = 12000
clientSocket = socket(AF_INET, SOCK_DGRAM)
message = input('Input lowercase sentence:')
clientSocket.sendto(message,(serverName, serverPort))
modifiedMessage, serverAddress = clientSocket.recvfrom(2048)
print (modifiedMessage)
clientSocket.close()
当我执行它并提供输入时,会发生以下错误:
Input lowercase sentence:fdsgfdf
Traceback (most recent call last):
File "C:\srinath files\NETWORKS\UDPclient.py", line 6, in <module>
clientSocket.sendto(message,(serverName, serverPort))
TypeError: a bytes-like object is required, not 'str'
我能做些什么来解决这个问题?
在Python 3中,编码和解码可以解决这个问题:
客户端:
服务器端:
一点编码可以解决这个问题:
客户端:
服务器端:
这段代码可能适合Python 2。但在Python3中,这将导致一个问题,即与位编码相关的问题。我试图制作一个简单的TCP服务器,但遇到了同样的问题。编码对我有效。用
sendto
命令试试这个。类似地,如果您想完全按照发送的方式打印数据,则可以使用
.decode()
在UDP服务器端接收数据。相关问题 更多 >
编程相关推荐