【发布时间】:2021-07-18 06:09:36
【问题描述】:
说实话,我有点困惑,我猜这个错误很明显。无论如何。
所以,一方面我有一个来自 GNU Radio 的 UDP 接收器,它向 Python 客户端发送数据。
问题是我收到的数据没有多大意义(如果我从文件接收器读取数据,我能够正确读取数据,所以它与我做网络部分的方式有关)。
我已经尝试过小端和大端,以防万一,我仍然会得到垃圾。
所以,在接收端(服务器端),块配置是:
self.blocks_udp_sink_0 = blocks.udp_sink(gr.sizeof_gr_complex*1, "the_ip",8080,1472,True)
那么,另一方面,我会得到 1500 个字节,不是吗? 1472的payload+28的UDP header。
我所做的,基于这个 [1] 示例似乎还可以,正在客户端读取 1500 个字节并假设标头是通过 recvfrom 方法取出的:
data_tmp, addr = sock.recvfrom(1500)
我假设 data_tmp 应该是 1472 字节的数据,至少长度匹配)。
当我发送 gr_complex 时,我读取了 8 个字节(两个浮点小端序,一个用于 I,一个用于 Q 组件)。
那么,我错过了什么?
谢谢!!
[1] 还有很多其他类似的,关键是我假设该方法将标头与有效负载分开。 https://www.binarytides.com/programming-udp-sockets-in-python/
【问题讨论】: