static void Main(String[] args) { Console.WriteLine("ZMQ version = {0}", Utils.GetZmqVersion()); var ctx = ZeroMQ.zmq_ctx_new(); if (ctx != null) { var requestSocket = ZeroMQ.zmq_socket(ctx, ZeroMQ.ZMQ_REQ); if (requestSocket != null) { if (-1 != ZeroMQ.zmq_connect(requestSocket, "tcp://localhost:60000")) { String msg = 0 == args.Length ? "Hello World" : args[0].Substring(0, Math.Min(args[0].Length, 64)); using (var buffer = PinnedBuffer.ASCII(msg)) { if (-1 != ZeroMQ.zmq_send(requestSocket, buffer, buffer.Length, 0)) { Console.WriteLine(msg + " sent"); if (-1 != ZeroMQ.zmq_recv(requestSocket, buffer, buffer.Length, 0)) { Console.WriteLine(PinnedBuffer.ASCII(buffer) + " received back"); } else { Console.WriteLine("receive back failed"); } } else { Console.WriteLine("send failed"); } } } else { Console.WriteLine("connect failed"); } ZeroMQ.zmq_close(requestSocket); } else { Console.WriteLine("socket failed"); } ZeroMQ.zmq_ctx_term(ctx); } else { Console.WriteLine("context failed"); } }
static void Main(String[] args) { Console.WriteLine("ZMQ version = {0}", Utils.GetZmqVersion()); var ctx = ZeroMQ.zmq_ctx_new(); if (ctx != null) { var subSocket = ZeroMQ.zmq_socket(ctx, ZeroMQ.ZMQ_SUB); if (subSocket != null) { if (0 == ZeroMQ.zmq_connect(subSocket, "tcp://localhost:60001")) { int numberOfSubscriptions = 0; for (int i = 0; i < args.Length; ++i) { using (var filter = PinnedBuffer.ASCII(args[i])) { if (-1 != ZeroMQ.zmq_setsockopt_2(subSocket, ZeroMQ.ZMQ_SUBSCRIBE, filter.Pointer, filter.Length)) { ++numberOfSubscriptions; } else { Console.WriteLine("subscription failed"); break; } } } if (numberOfSubscriptions > 0 && numberOfSubscriptions == args.Length) { Console.WriteLine("Listening..."); Console.WriteLine("[CTRL + C] to finish...\n"); ListenLoop(subSocket, Subscriptions()); } } else { Console.WriteLine("connection failed"); } ZeroMQ.zmq_close(subSocket); } else { Console.WriteLine("socket failed"); } ZeroMQ.zmq_ctx_term(ctx); } else { Console.WriteLine("context failed"); } }