用C / Python打包和解压缩

时间:2014-03-12 10:52:21

标签: c python-2.7 pack

我正在使用客户端/服务器模型中的套接字(Python中的客户端和C中的服务器),我必须将一些数据从客户端发送到服务器,因此我使用:

packed_data= pack('B5s5s50s',0x21,extension.strip(),pin,'')

打包我要发送的数据,但是

我不知道如何在使用服务器的C中解压缩此数据。

1 个答案:

答案 0 :(得分:0)

根据struct模块的文档,您的消息将始终具有61字节的固定长度。因此,您将从套接字读取61个字节到适当的容器中,以便在C应用程序中解压缩它。

这是一些未经测试的示例代码:

unsigned char buf[61] = {0};
read(sockfd, buf, sizeof(buf));
// print contents:
printf("%#2x\n", buf[0]);
for (i=1; i<6; i++) printf("%#2x ", buf[i]); printf("\n");
for (i=6; i<11; i++) printf("%#2x ", buf[i]); printf("\n");
for (i=11; i<61; i++) printf("%#2x ", buf[i]); printf("\n");

供参考: