我在GRC应用程序中使用ZMQ PUB Message Sink,并希望将消息发送到C ZMQ子应用程序。
一切都正常,除了我有10个字节。即存在某种类型的10字节报头(总是相同的序列)。目前我只是把它剪掉,但如果能知道它是从哪里来的就太好了。
在C中,我使用
...
void *context = zmq_ctx_new();
void *socket = zmq_socket(context, ZMQ_SUB);
zmq_setsockopt(socket, ZMQ_SUBSCRIBE, "", 0);
while(1){
zmq_msg_init(&message);
if(zmq_msg_recv(&message, socket, 0)){
int size = zmq_msg_size(&message);
...
}0x07 0x06 0x0A 0x00 0x00 0x00 0x00 0x3E 0x01 0x00 从右边数的第三个字节(0x3E)似乎是消息大小。
是否有人引用了相应的GnuRadio实现/定义?
发布于 2019-08-02 04:25:39
有意思的。我刚刚遇到了同样的问题,并在数据包的开头获得了这10个额外的字节……0x07 0x06 0x0A 0x00 0x00 0x00 0x0B 0x01 0x00
我的用法是GRC中的一个ZMQ PUB Message Sink和一个单独的python子客户端。我期望的数据包是11个字节,所以不确定0x0B是否相关?你的前导字节是什么?
我还注意到,您必须指定地址的方式与ZMQ PUB Sink块不同,因为它可以使用localhost:xxxx,但是PUB Message Sink需要tcp://127.0.0.1:xxxx
如果我也发现了额外字节的来源,我会更新它。
我要补充的是我的潜水员
socket.setsockopt(zmq.SUBSCRIBE, b"")如果这有什么关系的话。
https://stackoverflow.com/questions/57288209
复制相似问题