ZMQ - Python and Java Communication

Python ZMQ Server

import time
import zmq

context = zmq.Context()
socket = context.socket(zmq.REP)
socket.bind("tcp://*:5555")

i = 0

print("Waiting for incoming messages")
while True:
  #  Wait for next request from client
 message = socket.recv()
 print(message)
 socket.send_string(f"pong {i}")
 i = i + 1


Java Client

import org.zeromq.ZMQ;

public class SocketClient {

    public static void main(String[] args) {
        ZMQ.Context context = ZMQ.context(1);
        ZMQ.Socket socket = context.socket(ZMQ.REQ);
        socket.connect ("tcp://localhost:5555");
        for(int i = 0; i <10; i++) {
            String request = String.format("Ping %d", i) ;
            socket.send(request.getBytes (), 0);
            byte[] reply = socket.recv(0);
            System.out.println("Received " + new String (reply));
        }
        socket.close();
        context.term();
    }
}


Maven dependency for ZMQ in Java.

<dependency>
    <groupId>org.zeromq</groupId>
    <artifactId>jeromq</artifactId>
    <version>0.5.1</version>
</dependency>