【问题标题】:How to use jeromq in MATLAB如何在 MATLAB 中使用 jeromq
【发布时间】:2020-01-22 01:28:07
【问题描述】:

jeromq 是 libzmq 的 Java 实现。我有一个从 jeromq 源创建的 .jar 文件。但是,我无法从 MATLAB 调用 jeromq 中的类。我使用过addjavaclasspathaddjavalibrarypath,但仍然无法正常工作。有人在 MATLAB 中有一个简单的工作示例吗?

【问题讨论】:

  • 你能告诉我们你实际使用的代码吗?
  • 嗨@Suever。我能够在 MATLAB 中运行以下代码 import org.zeromq.ZMQ;,并且没有出现任何错误。我将下载的jeromq-0.3.5.jar 文件放在我正在工作的目录中,并且导入语句有效。你能指出一个在 MATLAB 中创建简单客户端的示例吗?
  • 你导入了,有没有尝试创建实例?
  • 嗨@Suever,我能够让它工作。如果其他人有兴趣做类似的事情,我将其附在下面。 gist.github.com/kdheepak/dca9d20f6bea93de8756068f79dc60a2 。如果您有 cmets 或建议来改进这一点,请告诉我。编辑 - 我无法在此处添加代码格式。我已经把它粘贴在一个要点中。

标签: matlab jeromq


【解决方案1】:

我在这里添加了答案,以供其他人感兴趣时参考。

% Author : Dheepak Krishnamurthy
% License : BSD 3 Clause

import org.zeromq.ZMQ;

ctx = zmq.Ctx();

socket = ctx.createSocket(ZMQ.REP);

socket.bind('tcp://127.0.0.1:7575');
message = socket.recv(0);
json_data = native2unicode(message.data)';

message = zmq.Msg(8);
message.put(unicode2native('Received'));
socket.send(message, 0);

socket.close()

【讨论】:

    【解决方案2】:

    我的 Matlab 9.0.0.341360 (R2016a) 想要下面的代码而不是上面的导入:

    javaclasspath('/path/to/jar/jeromq-0.4.3-SNAPSHOT.jar')
    import org.zeromq.*
    

    其余的工作正常。

    【讨论】:

      【解决方案3】:

      这是我必须做的事情。

      
          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();
      
      

      【讨论】:

      • 不知道为什么,但我似乎无法从 jeromq 访问 socket.subscribe() 方法。不确定是否存在版本不匹配或我是否有编译问题。 Java:jdk1.8.0_321,MATLAB 2021B,jeromq-0.5.3-SNAPSHOT.jar 提交 2a3645dbe6161774faa5011c132907c1be3c7687
      猜你喜欢
      • 2017-01-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-07-30
      相关资源
      最近更新 更多