我正在尝试在 Windows 10 操作系统中运行 Zeromq java 程序。为了设置环境,我尝试执行以下操作。
1) 从这里http://zeromq.org/distro:microsoft-windows下载并安装 ZMQ 的 java 库。
2)在环境变量中添加路径。
3) 尝试从 zguide 运行简单的 Hello World 代码。
服务器:
import org.zeromq.ZMQ;
public class Hwserver {
public static void main(String[] args) throws Exception {
ZMQ.Context context = ZMQ.context(1);
// Socket to talk to clients
ZMQ.Socket responder = context.socket(ZMQ.REP);
responder.bind("tcp://*:5555");
while (!Thread.currentThread().isInterrupted()) {
// Wait for next request from the client
byte[] request = responder.recv(0);
System.out.println("Received " + new String (request));
// Do some 'work'
Thread.sleep(1000);
// Send reply back to client
String reply = "World";
responder.send(reply.getBytes(), 0);
}
responder.close();
context.term();
}
}
客户:
import org.zeromq.ZMQ;
public class Hwclient {
public static void main(String[] args) {
ZMQ.Context context = ZMQ.context(1);
// Socket to talk to server
System.out.println("Connecting to hello world server…");
ZMQ.Socket requester = context.socket(ZMQ.REQ);
requester.connect("tcp://localhost:5555");
for (int requestNbr = 0; requestNbr != 10; requestNbr++) {
String request = "Hello";
System.out.println("Sending Hello " + requestNbr);
requester.send(request.getBytes(), 0);
byte[] reply = requester.recv(0);
System.out.println("Received " + new String(reply) + " " + requestNbr);
}
requester.close();
context.term();
}
}
当我尝试编译服务器时,出现以下错误。
error: cannot find symbol import org.zeromq.ZMQ;
之后,我尝试手动安装该库。我做了以下。
1) 从 Github 下载并解压 Libzmq-master 和 jzmq-master。
2) 使用 Visual Studio 2017 尝试从此处的目录构建 libzmq.sln 和 msvc.sln
libzmq - libzmq-master\builds\deprecated-msvc\vs2017\libzmq.sln
jzmq - jzmq-master\jzmq-jni\builds\msvc\msvc.sln
但无法构建它。发现几个错误。例如:
libzmq - #error: 没有定义 ZMQ_IOTHREAD_POLLER_USE_* 宏(编译源文件........\src\client.cpp) libzmq c:\users\shiha\downloads\libzmq-master\src\poller.hpp
jzmq - 无法打开包含文件:'zmq.h':没有这样的文件或目录
我没有得到我做错了什么。我按照 zeromq.org 中提供的指南进行操作,也搜索了类似的问题。但无法找到解决方案。