首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Matlab中的JeroMQ用户连接中断

Matlab中的JeroMQ用户连接中断
EN

Stack Overflow用户
提问于 2019-12-04 15:51:50
回答 1查看 97关注 0票数 0

使用Matlab中的JeroMQ,当我尝试recv消息时,我的用户连接就会下降。我已经和Wireshark核实过了。我还注意到,TCP连接的关闭是由我的订阅端口而不是发布端口发起的。

代码语言:javascript
复制
javaclasspath('jeromq-0.5.1.jar')
import org.zeromq.*;

ctx = zmq.Ctx();
socket = ctx.createSocket(ZMQ.SUB);
socket.connect('tcp://127.0.0.1:5996')
message = socket.recv(1) %this is when the connection gets dropped

Wireshark屏幕截图显示连接正在关闭

我不确定这会不会有帮助,但我已经用这个做了调查,

代码语言:javascript
复制
socket.setSocketOpt(ZMQ.ZMQ_TCP_KEEPALIVE,1)

但是Matlab报告说,ZMQ_TCP_KEEPALIVE是一个无法识别的函数或变量。

我感谢线程上的人们,感谢他们让我从Matlab中的JeroMQ开始。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-01-22 19:05:36

我做了一些更多的研究,并考虑到了Github的一些朋友的建议。原来我的套接字直到我的close()函数的代码后面才关闭。下面是我的工作代码,供其他人在Matlab中开始使用JeroMQ时使用。似乎其他帖子上的一些代码已经过时了。

代码语言:javascript
复制
javaclasspath('jeromq-0.5.1.jar')
import org.zeromq.*;

%subscribe to ZMQ feed
context = ZContext();
socket = context.createSocket(ZMQ.SUB); 
success = false;
while(~success)
    success = socket.connect('tcp://127.0.0.1:5996');
end
socket.subscribe("");
socket.setTCPKeepAlive(1);

%receive a message
message = socket.recv(0); %nonblocking receive uses argument (1)

%when done
socket.close();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59179878

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档