0
我试图将C客户端连接到Python服务器。 C客户端发送一个字符串的长度,然后逐个发送字符串的字符,但是以字节为单位。Python的struct.unpack从4字节到字符
这是我送的人物:
for (i = 0; i<length; i++) {
ascii = (int)word[i]; --- word is a char []
ascii = htonl(ascii);
send(c, &ascii, sizeof(ascii), 0);
}
在Python端,我用的recv和解压。我想我得到4个字节,但我不知道如何将它们转换为解压缩字符。
for i in range (0,nr):
el = c_socket.recv(4) -- this returns values like b'\x00\x00\x00a'
el = struct.unpack("!i",el)[0].decode('ascii') --- this doesn't work
So how do I do that?
你为什么要发送的字符作为整数 - 翻两番的数据涉及的金额 - 当你可以只直接发送字符,因为它们是字节? – jwodder
我需要C客户端与C服务器一起工作,这是我可以使其工作的唯一方式,但现在我无法使C和Python一起工作。那么是否有任何方法来“解码”字节? – Mocktheduck
好吧,所以它的作品,如果我只是使用el.decode('ascii') – Mocktheduck