This is an example of network autoconfiguration with Go / ØMQ. The server sets up a ØMQ REP socket for clients to connect to, and advertises its presence using a multicast publisher socket. Clients listen on the service port using a multicast subscriber socket; once they receive the advertised server address and port, it stops listening for a server and sends a hello world message to the server.

You can fetch the code using

go get

The source code can be pulled from bitbucket with:

hg clone

The code can be built and tested using the included mkfile. Alternatively, once fetched:

go build
go build

Both server and client need to have an interface explicitly chosen using the -i flag. For example,

server/server -i wlan0

Right now, this code has only been tested on Ubuntu 12.10. It might require some finangling on other platforms to make sure the installed ØMQ version matches the Go library's version (version 2.2). It almost certainly will not work on OS X; as of the time of this writing, the EPGM transport isn't supported.