【发布时间】:2021-03-03 11:54:21
【问题描述】:
我们目前想要一种通过套接字在设备之间传递数据的方法,因此我们在服务器端使用 ZeroMQ 和 python 脚本,一切似乎都正常。我们的协议地址目前是epgm://224.0.0.1:28650,但是我们需要和python脚本通信所以我们决定使用这个Swift library。目前,我直接使用这个存储库中的库,它似乎正在使用 ZeroMQ 库版本 4.2,补丁级别为 0.2。然后,使用this function,我正在检查该库是否具有我的应用报告它不支持它的 .pgm 协议。
虽然库有这个功能来检查它是否支持某种协议,但我无法在谷歌上找到任何关于如何让库支持 pgm 协议的信息。
查看原始 swift 库后,我找到了zmq.h,据我所知,这是 swift 库使用的 ZMQ 库。因此,在发现这一点后,我尝试使用我们用来解决 PyZMQ 问题的“--with-pgm”构建选项重新编译 libzmq。但是,我对此并没有太多的运气,我什至不确定这是我应该如何进行的。我目前不知所措,任何帮助将不胜感激。谢谢。
这是我们当前使用的 Swift 代码:
import SwiftyZeroMQ5
class communicationClass{
var context: SwiftyZeroMQ.Context?;
var subscriber: SwiftyZeroMQ5.SwiftyZeroMQ.Socket?;
init(){
do{
context = try SwiftyZeroMQ.Context();
subscriber = try context?.socket(.subscribe);
try subscriber?.connect("epgm://224.0.0.1:28650");
}
catch{
print("error - \(error)")
}
}
}
这是它输出的错误:error - Protocol not supported
【问题讨论】:
标签: swift sockets zeromq multicast pgm-protocol