您的位置:首页 > 编程语言 > Java开发

java调用zeromq RES-REP模式

2014-04-11 09:36 239 查看
服务端启动后等待客户端连接,每个发送数据都会有相应的回应。
代码:
package com.guo.server;

import org.zeromq.ZMQ;
import org.zeromq.ZMQ.Context;
import org.zeromq.ZMQ.Socket;

public class ServerREP {

public void start(){
System.out.println("===========server start=============");
Context context = ZMQ.context(1);
Socket socket = context.socket(ZMQ.REP);
socket.bind("tcp://192.168.124.130:5555");
while(true){
byte[] request;
request = socket.recv(0);
System.out.println("Received request: [" + new String(request) + "]");

try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}

String replyString = "World";
byte[] reply = replyString.getBytes();
socket.send(reply, ZMQ.NOBLOCK);

if(new String(request).equals("quit")){
break;
}
}
System.out.println("===========server end=============");
}
}

客户端代码:
package com.guo.client;

import org.zeromq.ZMQ;
import org.zeromq.ZMQ.Context;
import org.zeromq.ZMQ.Socket;

public class ClientRES {

public void start(){
Context context = ZMQ.context(1);
Socket socket = context.socket(ZMQ.REQ);
socket.connect("tcp://192.168.124.130:5555");
for(int i=0;i<10;i++){
String requestString = "Hello" ;
if(i==9){
requestString = "quit" ;
}
byte[] request = requestString.getBytes();
// 发送
socket.send(request, ZMQ.NOBLOCK);

// 获得返回值
byte[] reply = socket.recv(0);
System.out.println("Received reply " + requestString + ": [" + new String(reply) + "]");
}
}

}

循环10次后系统退出。

本文出自 “自由畅想” 博客,请务必保留此出处http://guo09.blog.51cto.com/2486806/1393758
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: