我在端口80
上有一个 UDP python 服务器,我希望有人访问服务器并使用UTF-32
发送编码消息"启动服务器"但是当我尝试解码它时,它会给出
request_code = bytes.decode(x, 'utf-32')
TypeError: descriptor 'decode' requires a 'bytes' object but received a 'tuple'
这是代码:
Constants.Server0 = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
Constants.Server0.bind((local_ip, udp_port_main))
Constants.Main_server_data = Constants.Server0.recvfrom(2048)
for x in Constants.Main_server_data:
request_code = bytes.decode(x, 'utf-32')
if request_code == 'Start Server':
print("Authorized!")
我需要这方面的帮助,并可以帮助我度过难关。
recvfrom:
。返回值是一对
(string, address)
其中字符串是表示接收的数据的字符串,地址是发送数据的套接字的地址。
所以试试:
request_code = bytes.decode(x[0], 'utf-32')
或更好的风格:
for string, address in Constants.Main_server_data:
request_code = bytes.decode(string, 'utf-32')