UDP python to c - 打包二进制数据 - struct.pack('<ff',

Posted

技术标签:

【中文标题】UDP python to c - 打包二进制数据 - struct.pack(\'<ff\',【英文标题】:UDP python to c - packed binary data - struct.pack('<ff',UDP python to c - 打包二进制数据 - struct.pack('<ff', 【发布时间】:2013-02-06 21:04:51 【问题描述】:

客户端(python):

theta = math.sin(23/3) / 300
y = math.cos(23/11) / 20
data=struct.pack('<ff',theta,y) # pack with two float
s.sendto(data, (ip, 50000))

服务器(python):

 daten, addr = s.recvfrom(1024) #
 d=struct.unpack('<ff',daten)
 print ("[%s] %s" % (d[0],d[1])) 

--> 有效

如何将 c 文件作为客户端?这在 c (data=struct.pack('

客户(c):

 ??  

【问题讨论】:

【参考方案1】:

这应该等价于

struct 
  float d[2];
;

在 C 中(假设是 little-endian 主机)。

【讨论】:

【参考方案2】:

我得到了解决方案:

float value[2];
value[0]=1.22;
value[1]=-2.22;
...
sendto(s,value,sizeof(value),....)

谢谢

【讨论】:

以上是关于UDP python to c - 打包二进制数据 - struct.pack('<ff',的主要内容,如果未能解决你的问题,请参考以下文章

java怎么实现JSON打包UDP

将字节串解读为打包的二进制数据

将字节串解读为打包的二进制数据

qt中如何解包利用python 的struct.pack()函数打包的数据

python3实现UDP协议的简单服务器和客户端

python struct.pack() 二进制文件,文件中打包二进制数据的存储与解析