【问题标题】:ZeroMQ RADIO socket send doesn't have an option for setting a groupZeroMQ RADIO 套接字发送没有设置组的选项
【发布时间】:2020-12-19 23:24:45
【问题描述】:

我正在尝试为 ZeroMQ 实现我自己的 Swift 包装器,并支持诸如 RADIODISH 之类的草稿方法。我已经能够成功实现DISH 包装器来接收数据,我无法实现RADIO 包装器来发送数据。从我在这里可以看到关于pyzmq 的文档,

在我看来pyzmq 库有一个内置函数,允许直接通过组发送消息。但是,在查看zmq.h 的发送功能时,我看不到任何方法可以向群组发送消息。我可以使用此函数发送消息而不会出现任何错误,但是由于我发送的内容没有附加组,因此在菜脚本中没有收到该消息。

有没有办法通过RADIO 套接字通过group 发送数据?

我还研究了如果我使用zmq_msg_t 会如何完成,因为它有一种附加组的方式。所以,我在 Swift 中使用了这个函数:

        public func sendRadioMessage(group: String, data: NSData) throws{
            var msg = zmq_msg_t.init();
            var result : Int32;
            let flags: SocketSendRecvOption = .none
            
            
            result = zmq_msg_init_data(&msg, UnsafeMutableRawPointer(mutating: data.bytes), data.length, nil, nil);
            if (result == -1) { throw ZeroMQError.last }
        
            defer {
                // Clean up message on scope exit
                zmq_msg_close(&msg)
            }
            
            result = zmq_msg_set_group(&msg, group);
            if (result == -1) { throw ZeroMQError.last }
            
            result = zmq_msg_send(&msg, self.handle, flags.rawValue);
            if (result == -1) { throw ZeroMQError.last }
            print("sent \(result) bytes")
        }

来自我之前的question.

然而,虽然zmq_msg_send() 函数确实返回了正确的发送字节数,但我的python 脚本似乎没有接收到数据。我知道我的 python 脚本可以工作,因为我使用了 this python script 的略微修改版本,来自 pyzmq 示例。

【问题讨论】:

    标签: python c++ swift zeromq pyzmq


    【解决方案1】:

    Q“有没有办法通过RADIO 套接字通过group 发送数据?”

    当使用 DRAFT 原型时(其中 SuT 仍在持续开发流程中,任何下一级派生工件,即任何派生语言包装器或绑定原型),人们必须接受某种程度的不适,没有稳定的 API,拥有成熟的 API 文档的网络,我们必须成为一种侦探:

    zmq_msg_set_group ( zmq_msg_t *msg, const char *group );
    

    本机 API(后来变成了一个更像 Python 的模块)呈现了这个过程步骤(后来可能变成了 pyzmq.Socket.send() 方法的调用接口内的另一个参数)has it

    敬请期待,永远不要放弃以我们拥有的唯一来源,即本机 API 为目标来破解目标

    :o)

    【讨论】:

      猜你喜欢
      • 2011-07-19
      • 2021-01-11
      • 1970-01-01
      • 2011-05-29
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多