Skip to content

Instantly share code, notes, and snippets.

@janderit
Created September 10, 2012 15:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save janderit/3691683 to your computer and use it in GitHub Desktop.
Save janderit/3691683 to your computer and use it in GitHub Desktop.
Example zeromq usage
public sealed class ZmqEventServer
{
public ZmqEventServer(ZmqPollPool pool, NetworkAddress broadcastAddress, NetworkAddress listenAddress)
{
if (!listenAddress.IsBindable) throw new ArgumentException("listen address must be bindable (i.e. IP address instead of DNS name)");
ZmqSocket broadcast=null;
var broadcastAddr = broadcastAddress.String;
var listenAddr = listenAddress.String;
pool.MarshalAndWait((context, register) =>
{
broadcast = context.CreateSocket(SocketType.PUB);
broadcast.Bind(broadcastAddr);
register(broadcast);
});
pool.MarshalAndWait((context, register) =>
{
var listen = context.CreateSocket(SocketType.PULL);
listen.Bind(listenAddr);
register(listen, datagram => Helper.Send(broadcast, datagram.ToList()));
});
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment