使用Python在UDP客户端服务器中打印消息时出现编码问题



我正在尝试从TCP客户端服务器创建UDP客户端服务器。我在编码和打印从服务器到客户端的接收消息时遇到了问题。它的工作方式与我在TCP上的方式相同,但在UDP上似乎不起作用,我不确定我还需要编码什么?

这是我得到的错误:

File "/Users/PycharmProjects/UDPProject/client.py", line 29, in <module>
print("received %s" % command)
TypeError: not all arguments converted during string formatting

这是我的客户端代码,去掉了一些代码。

while True:
message = input("Please enter a command:n")  # ask user to input message
if message == 'quit':
break
if len(message) == 0:
print("Please enter something")
message = input("Please enter a command:n")
print("Sending %s" % message)
sock.sendto((message.encode("utf-8")), address)  # send message
command = str(sock.recvfrom(BUFFER_SIZE), "utf-8")
print("received %s" % command)
print("closing connection with server")
sock.close()

当套接字试图接收utf-8格式的缓冲区大小时,以及当我试图打印它时,就会发生这种情况。

编辑:我修复了这个错误,它只是lenz概述的打字错误,但现在它给了我这个错误

command = str(sock.recvfrom(BUFFER_SIZE), "utf-8")
TypeError: decoding to str: need a bytes-like object, tuple found

我不知道为什么???

socket.recvfrom在UDP中返回一个元组对(字节,地址(,因此我必须解码第一个字节项。我就是这么做的。

CCD_ 2。[0]获取BUFFER_SIZE元组中的第一个项目

最新更新