使用 python 的 UTF-32 解码有问题



我在端口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')

最新更新