我试图将C客户端连接到Python服务器。 C客户端发送字符串的长度,然后逐个发送字符串的字符,但作为字节。
这就是我发送字符的方式:
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和unpack。我认为我得到了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?
答案 0 :(得分:0)
struct.unpack("!i",el)
返回包含整数的单元素元组。要将此整数转换为该代码点处的字符,请使用chr
:
el = chr(struct.unpack("!i",el)[0])