【发布时间】:2017-06-09 07:45:53
【问题描述】:
我正在尝试使用 ZeroMQ 实现客户端服务器。
我在无限循环中运行服务器,绑定到套接字并无限轮询套接字。
当客户端发送请求时,服务器只接收第一次。后面的请求没有被服务器接收到,下面是我的代码sn-p
服务器:
ZMQ.Socket socket = context.socket(ZMQ.REP);
socket.bind ("tcp://*:5555");
System.out.println("Server is in receive mode");
while (!Thread.currentThread ().isInterrupted ()) {
Poller poller = new Poller(1);
poller.register(socket, Poller.POLLIN);
poller.poll();
if (poller.pollin(0)) {
ZMsg zmqMessage = ZMsg.recvMsg(socket);
if (zmqMessage!=null) {
zmqMessage.getFirst().getData();
}
}
客户:
ZMQ.Socket socket = context.socket(ZMQ.REQ);
socket.connect ("tcp://localhost:5555");
ZMsg readyFrame = new ZMsg();
readyFrame.add(new ZFrame("READY"));
readyFrame.send(socket);
我尝试在客户端进行如下轮询,但没有成功。
Poller poller = new Poller(1);
poller.register(socket, Poller.POLLOUT);
poller.pollout(0);
【问题讨论】:
-
@user3666197,谢谢,这真的很适合我的目的。
标签: java client-server message-queue zeromq