java 连接远程的zeromq客户端和服务端示例
时间: 2024-10-19 22:05:27 浏览: 28
在Java中连接ZeroMQ服务器和客户端通常涉及到使用`org.zeromq.ZMQ`库。这里提供一个简单的例子,展示了如何创建一个TCP连接的客户端和服务端:
首先,我们看一个简单的服务端(Server)示例:
```java
import org.zeromq.ZMQ;
public class ZmqServer {
public static void main(String[] args) throws Exception {
// 创建一个发布者(Publisher)socket
ZMQ.Context context = ZMQ.context(1);
ZMQ.Socket socket = context.socket(ZMQ.PUB);
socket.bind("tcp://*:5555"); // 使用本地IP和5555端口监听
String message = "Hello from Server";
for (int i = 0; i < 10; i++) {
socket.send(message.getBytes(), 0); // 发送消息
}
context.close();
}
}
```
然后,这是一个客户端(Client)的例子:
```java
import org.zeromq.ZMQ;
public class ZmqClient {
public static void main(String[] args) throws Exception {
// 创建一个订阅者(Subscriber)socket
ZMQ.Context context = ZMQ.context(1);
ZMQ.Socket socket = context.socket(ZMQ.SUB);
socket.connect("tcp://localhost:5555"); // 连接到服务端
// 设置接收主题
socket.setsockopt_string(ZMQ.SUBSCRIBE, ""); // 接收所有消息
byte[] buffer = new byte[1024];
while (true) {
int length = socket.recv(buffer, 0);
if (length > 0) {
System.out.println(new String(buffer, 0, length));
} else {
break;
}
}
context.close();
}
}
```
在这个例子中,服务端作为ZMQ的发布者(Publisher),将消息发送到名为`"tcp://*:5555"`的地址。而客户端作为一个订阅者(Subscriber),连接到同样的地址并接收发布的消息。
阅读全文