Android开发之ZMQ

Android中需要用到有关ZMQ的jar包,本章用的是jeromq 例如:
在这里插入图片描述
有需要的可以点击下载对应的版本

zmq是一个消息队列。可以在进程内、进程间、TCP、多播中,以消息为单位传输数据,而不是socket的字节流。

常用模式有:Request-Reply,Publish-Subscribe,Parallel Pipeline。

本章用到的是:Request-Reply

服务端:

ZMQ.Context context = ZMQ.context(1);
ZMQ.Socket socket = context.socket(ZMQ.REP);
String url = "tcp://*:9999";
try {
    socket.bind(url);//绑定地址
} catch (ZMQException e) {
    throw e;
}
boolean wait = true;
while (wait) {
    //服务器一直循环
    byte[] request;
    try {
        request = socket.recv(0);//接收的客户端数据
        String getData = new String(request);
        if (getData.equals("getSingle")) {
            socket.send("OK".toString(), 1);
        } else {
            socket.send("error".toString(), 1);
        }
    } catch (ZMQException e) {
        throw e;
    }
} 

客户端:

ZMQ.Context context = ZMQ.context(1);
ZMQ.Socket socket = context.socket(ZMQ.REQ);
System.out.println("Connecting to hello world server...");

socket.setSendTimeOut(3*1000);
socket.setReceiveTimeOut(3*1000);
socket.setLinger(0);

socket.connect("tcp://localhost:9999");
String requestString = "getSingle";
byte[] request = requestString.getBytes();
socket.send(requestString, 0);
try {
    Thread.sleep(100);
} catch (InterruptedException e) {
    e.printStackTrace();
}
//客户端接收到服务端返回来的消息
byte[] reply = socket.recv(0);

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值