Python struct.unpack从4字节到字符
我正在尝试将C客户机连接到Python服务器。C客户机发送字符串的长度,然后逐个发送字符串的字符,但以字节的形式发送 以下是我发送字符的方式:Python struct.unpack从4字节到字符,python,c,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); } 解包!i、 el
for ( i = 0; i<length; i++) {
ascii = (int)word[i]; --- word is a char []
ascii = htonl(ascii);
send(c, &ascii, sizeof(ascii), 0);
}
解包!i、 el返回一个包含整数的单元素元组。要将此整数转换为该代码点处的字符,请使用:
为什么要以整数的形式发送字符?所涉及的数据量是原来的四倍?而你可以直接以字节的形式发送字符?我需要C客户机与C服务器一起工作,这是我唯一能让它工作的方法,但现在我无法让C和Python一起工作。有没有办法解码字节?好的,如果我只使用el.decode'ascii'
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?
el = chr(struct.unpack("!i",el)[0])