ZeroMQ is a socket library that allows developers to create distributed, concurrent, queue based messaging systems with high availability. One of the many benefits is the abstraction of dealing with sockets at a queue and atomic message level.
It’s really simple to use, here is an example:
Client
namespace Client
{
using System;
using System.Text;
class Program
{
static void Main()
{
using (var ctx = new ZMQ.Context(1))
{
var socket = ctx.Socket(ZMQ.REQ);
socket.Connect("tcp://localhost:5555");
while (true)
{
socket.Send(Encoding.ASCII.GetBytes("Hello"));
byte[] message;
socket.Recv(out message);
Console.WriteLine(Encoding.ASCII.GetString(message));
}
}
}
}
}
Server
namespace Server
{
using System;
using System.Text;
class Program
{
static void Main()
{
using (var ctx = new ZMQ.Context(1))
{
var socket = ctx.Socket(ZMQ.REP);
socket.Bind("tcp://*:5555");
while (true)
{
byte[] message;
socket.Recv(out message);
Console.WriteLine(Encoding.ASCII.GetString(message));
socket.Send(Encoding.ASCII.GetBytes("World"));
}
}
}
}
}
This sample was taken from the internet but you can download a snapshot of the source here:
Do you know how to use the subscribe part?
ReplyDeleteum, congratulations on a content-free blog post? can I, too, make money saying nothing?
ReplyDelete