Python struct.unpack从4个字节到char

时间:2015-11-07 20:57:14

标签: python c

我试图将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?

1 个答案:

答案 0 :(得分:0)

struct.unpack("!i",el)返回包含整数的单元素元组。要将此整数转换为该代码点处的字符,请使用chr

el = chr(struct.unpack("!i",el)[0])