1 package org.sim0mq.test.pair;
2
3 import java.util.Scanner;
4
5 import org.zeromq.SocketType;
6 import org.zeromq.ZContext;
7 import org.zeromq.ZMQ;
8
9
10
11
12
13
14
15
16
17
18
19
20
21 public final class PairServer
22 {
23
24
25
26
27 private PairServer(final int port, final String servername)
28 {
29 ZContext ctx = new ZContext();
30 ZMQ.Socket socket = ctx.createSocket(SocketType.PAIR);
31 socket.bind("tcp://*:" + port);
32 new ListenThread(socket).start();
33 Scanner scanner = new Scanner(System.in);
34 while (true)
35 {
36 String line = scanner.nextLine();
37 if (line.isEmpty())
38 {
39 break;
40 }
41 socket.send(String.format("%s: %s", servername, line));
42 }
43 ctx.close();
44 ctx.destroy();
45 scanner.close();
46 System.exit(0);
47 }
48
49
50
51
52 public static void main(final String[] args)
53 {
54 String port = args.length < 1 ? "9001" : args[0];
55 String name = args.length < 2 ? "server" : args[1];
56 new PairServer(Integer.valueOf(port), name);
57 }
58
59
60 static class ListenThread extends Thread
61 {
62
63 private ZMQ.Socket socket;
64
65
66
67
68 ListenThread(final ZMQ.Socket socket)
69 {
70 super();
71 this.socket = socket;
72 }
73
74
75 @Override
76 public void run()
77 {
78 while (true)
79 {
80 String msg = this.socket.recvStr();
81 if (!msg.isEmpty())
82 {
83 System.out.println(msg);
84 }
85 }
86 }
87
88 }
89 }