通过 UDP 解码 protobufs

Decode protobufs over UDP

我有一个通过 UDP 多播发送的 Protobuf 序列化数据。我使用 bash 的 socat 阅读它如下

socat UDP4-RECVFROM:1277,ip-add-membership=239.195.1.2:192.168.254.5,fork,reuseaddr - 

我想将它与 protoc 链接起来,以便在每个数据包中保持解码数据。我怎样才能做到这一点 ? 当我这样做时

socat UDP4-RECVFROM:1277,ip-add-membership=239.195.1.2:192.168.254.5,fork,reuseaddr - | protoc --decode=proto.Message ./path/to/proto/message.proto

终端刚刚挂起。不确定如何进行。

原来是socat的问题。删除 fork 部分,效果很好。

基本上

socat UDP4-RECVFROM:1277,ip-add-membership=239.195.1.2:192.168.254.5,reuseaddr - | protoc --decode=proto.Message ./path/to/proto/message.proto