Search in sources :

Example 31 with ZMsg

use of org.zeromq.ZMsg in project jeromq by zeromq.

the class flclient1 method main.

//  .split client task
//  The client uses a Lazy Pirate strategy if it only has one server to talk
//  to. If it has two or more servers to talk to, it will try each server just
//  once:
public static void main(String[] argv) {
    ZContext ctx = new ZContext();
    ZMsg request = new ZMsg();
    request.add("Hello world");
    ZMsg reply = null;
    int endpoints = argv.length;
    if (endpoints == 0)
        System.out.printf("I: syntax: flclient1 <endpoint> ...\n");
    else if (endpoints == 1) {
        //  For one endpoint, we retry N times
        int retries;
        for (retries = 0; retries < MAX_RETRIES; retries++) {
            String endpoint = argv[0];
            reply = tryRequest(ctx, endpoint, request);
            if (reply != null)
                //  Successful
                break;
            System.out.printf("W: no response from %s, retrying...\n", endpoint);
        }
    } else {
        //  For multiple endpoints, try each at most once
        int endpointNbr;
        for (endpointNbr = 0; endpointNbr < endpoints; endpointNbr++) {
            String endpoint = argv[endpointNbr];
            reply = tryRequest(ctx, endpoint, request);
            if (reply != null)
                //  Successful
                break;
            System.out.printf("W: no response from %s\n", endpoint);
        }
    }
    if (reply != null) {
        System.out.printf("Service is running OK\n");
        reply.destroy();
    }
    request.destroy();
    ;
    ctx.destroy();
}
Also used : ZContext(org.zeromq.ZContext) ZMsg(org.zeromq.ZMsg)

Example 32 with ZMsg

use of org.zeromq.ZMsg in project jeromq by zeromq.

the class flclient1 method tryRequest.

private static ZMsg tryRequest(ZContext ctx, String endpoint, ZMsg request) {
    System.out.printf("I: trying echo service at %s...\n", endpoint);
    Socket client = ctx.createSocket(ZMQ.REQ);
    client.connect(endpoint);
    //  Send request, wait safely for reply
    ZMsg msg = request.duplicate();
    msg.send(client);
    Poller poller = ctx.createPoller(1);
    poller.register(client, Poller.POLLIN);
    poller.poll(REQUEST_TIMEOUT);
    ZMsg reply = null;
    if (poller.pollin(0))
        reply = ZMsg.recvMsg(client);
    //  Close socket in any case, we're done with it now
    ctx.destroySocket(client);
    return reply;
}
Also used : ZMsg(org.zeromq.ZMsg) Socket(org.zeromq.ZMQ.Socket) Poller(org.zeromq.ZMQ.Poller)

Example 33 with ZMsg

use of org.zeromq.ZMsg in project jeromq by zeromq.

the class flclient2 method main.

public static void main(String[] argv) {
    if (argv.length == 0) {
        System.out.printf("I: syntax: flclient2 <endpoint> ...\n");
        System.exit(0);
    }
    //  Create new freelance client object
    flclient2 client = new flclient2();
    //  Connect to each endpoint
    int argn;
    for (argn = 0; argn < argv.length; argn++) client.connect(argv[argn]);
    //  Send a bunch of name resolution 'requests', measure time
    int requests = 10000;
    long start = System.currentTimeMillis();
    while (requests-- > 0) {
        ZMsg request = new ZMsg();
        request.add("random name");
        ZMsg reply = client.request(request);
        if (reply == null) {
            System.out.printf("E: name service not available, aborting\n");
            break;
        }
        reply.destroy();
    }
    System.out.printf("Average round trip cost: %d usec\n", (int) (System.currentTimeMillis() - start) / 10);
    client.destroy();
}
Also used : ZMsg(org.zeromq.ZMsg)

Example 34 with ZMsg

use of org.zeromq.ZMsg in project jeromq by zeromq.

the class flclient3 method main.

public static void main(String[] argv) {
    //  Create new freelance client object
    flcliapi client = new flcliapi();
    //  Connect to several endpoints
    client.connect("tcp://localhost:5555");
    client.connect("tcp://localhost:5556");
    client.connect("tcp://localhost:5557");
    //  Send a bunch of name resolution 'requests', measure time
    int requests = 10000;
    long start = System.currentTimeMillis();
    while (requests-- > 0) {
        ZMsg request = new ZMsg();
        request.add("random name");
        ZMsg reply = client.request(request);
        if (reply == null) {
            System.out.printf("E: name service not available, aborting\n");
            break;
        }
        reply.destroy();
    }
    System.out.printf("Average round trip cost: %d usec\n", (int) (System.currentTimeMillis() - start) / 10);
    client.destroy();
}
Also used : ZMsg(org.zeromq.ZMsg)

Example 35 with ZMsg

use of org.zeromq.ZMsg in project jeromq by zeromq.

the class flserver1 method main.

public static void main(String[] args) {
    if (args.length < 1) {
        System.out.printf("I: syntax: flserver1 <endpoint>\n");
        System.exit(0);
    }
    ZContext ctx = new ZContext();
    Socket server = ctx.createSocket(ZMQ.REP);
    server.bind(args[0]);
    System.out.printf("I: echo service is ready at %s\n", args[0]);
    while (true) {
        ZMsg msg = ZMsg.recvMsg(server);
        if (msg == null)
            //  Interrupted
            break;
        msg.send(server);
    }
    if (Thread.currentThread().isInterrupted())
        System.out.printf("W: interrupted\n");
    ctx.destroy();
}
Also used : ZContext(org.zeromq.ZContext) ZMsg(org.zeromq.ZMsg) Socket(org.zeromq.ZMQ.Socket)

Aggregations

ZMsg (org.zeromq.ZMsg)38 ZFrame (org.zeromq.ZFrame)20 ZContext (org.zeromq.ZContext)14 Socket (org.zeromq.ZMQ.Socket)14 Poller (org.zeromq.ZMQ.Poller)10 ArrayList (java.util.ArrayList)4 Random (java.util.Random)4 ZMQ (org.zeromq.ZMQ)4 IOException (java.io.IOException)3 File (java.io.File)2 RandomAccessFile (java.io.RandomAccessFile)2 BufferedWriter (java.io.BufferedWriter)1 DataInputStream (java.io.DataInputStream)1 DataOutputStream (java.io.DataOutputStream)1 FileInputStream (java.io.FileInputStream)1 FileNotFoundException (java.io.FileNotFoundException)1 FileOutputStream (java.io.FileOutputStream)1 FileWriter (java.io.FileWriter)1 LinkedList (java.util.LinkedList)1 PollItem (org.zeromq.ZMQ.PollItem)1