1 package org.sim0mq.test;
2
3 import java.util.Arrays;
4
5 import org.sim0mq.Sim0MQException;
6 import org.zeromq.ZContext;
7 import org.zeromq.ZMQ;
8
9
10
11
12
13
14
15
16
17 public class Tic
18 {
19
20
21
22
23 public static void main(final String[] args) throws Sim0MQException
24 {
25 long time = System.currentTimeMillis();
26 int nummessages = 100000;
27 try (ZContext context = new ZContext(1))
28 {
29
30 System.out.println("Connecting to server on port 5556...");
31
32 ZMQ.Socket requester = context.createSocket(ZMQ.REQ);
33 requester.connect("tcp://localhost:5556");
34
35 for (int i = 0; i < nummessages; i++)
36 {
37
38 byte[] message = string2byte("TIC");
39 requester.send(message, 0);
40
41
42 byte[] reply = requester.recv(0);
43 String rs = byte2string(reply);
44 if (!rs.equals("TOC"))
45 {
46 System.err.println("Answer was not TOC");
47 }
48 }
49
50
51 byte[] message = string2byte("STOP");
52 requester.send(message, 0);
53
54 requester.close();
55 context.destroy();
56 }
57 long delta = (System.currentTimeMillis() - time);
58 System.out.println("RUNTIME = " + delta + " ms");
59 System.out.println("Transactions/second = " + 1000.0 * nummessages / delta + " tps");
60 System.out.println("Messages/second (req + rep) = " + 2000.0 * nummessages / delta + " mps");
61 }
62
63
64
65
66
67
68 public static byte[] string2byte(final String s)
69 {
70 byte[] b = s.getBytes();
71 return Arrays.copyOf(b, b.length + 1);
72 }
73
74
75
76
77
78
79 public static String byte2string(final byte[] b)
80 {
81 return new String(Arrays.copyOf(b, b.length - 1));
82 }
83
84 }