服務端啓動後等待客戶端鏈接,每一個發送數據都會有相應的迴應。socket
代碼:tcp
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=============");
}
}
ide
客戶端代碼:ui
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次後系統退出。
server