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
代码:
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
相关文章推荐
- zeroMQ/jzmq REQ/REP(c/s)模式及java代码示例
- Android平台dalvik模式下java Hook框架ddi的分析(2)--dex文件的注入和调用
- 黑马程序员——java中关于单例设计模式和懒汉式多调用的问题
- java调用zeromq PUB-SUB模式
- JAVA常用设计模式(静态化调用和实例化调用的区别,编辑可见 )
- ZeroMQ(java)之Router/Dealer模式
- 【GOF23设计模式】_责任链模式_公文审批_供应链系统的采购审批_异常链_过滤器和拦截器调用过程JAVA243
- java调用.NET的webservice实例的二种方法soap方式axis模式
- ZeroMQ(java)之Publish/Subscribe模式
- 一步步学习java并发编程模式之Active Object模式(二)java实现异步调用
- ZeroMQ(java)之Requerst/Response模式
- java: axis2 Web Service四种调用模式
- Java学习--在Ubuntu命令行模式下编写Java JNI调用
- ZeroMQ(java)之Requerst/Response模式
- ZeroMQ 简单的高性能REP-REQ模型,Java语言版本
- zeroMQ 简单的PUB-SUB 高性能模式,java 语言版本
- ZeroMQ之REP/REQ模式
- 黑马程序员——Java基础---面向对象(对象的初始化、对象调用成员、单例设计模式)(4)
- .net调用java的webservice时服务器MTOM模式报错
- ZeroMQ(java)入门之Requerst/Response模式