PubNet was developed as part of the "Distributed Systems Programming" course that I undertook during the final year of my degree. It is a reasonably rudimentary - but capable - instant messaging server and client. The name comes from its unique "pub vote" feature, whereby any user can announce that they'd like to goto the pub, and all other users on the server would be instantly queried as to whether they're also interested in going. The vote is tallied by the server and the result shown to all users.

Additionally, features include a server that can support upto 62 simultaneous users, private messaging (in addition to global messaging), auto-discovery of servers on a local network and formatted (that is, coloured and italicised) output.

Technologically speaking, PubNet features:

  • A server and client DLL developed entirely in C++, making use of boost and STL where applicable.
  • A flexible network library specialised to handle text protocols, built separately to the PubNet application (to support potential reuse of the library in other applications).
  • A PubNet client DLL exporting a simple API for developing PubNet clients.
  • A sample client frontend developed in C# and WinForms, utilising the aforementioned DLL.

Try It!

Download PubNet


Get the Source

Download PubNet Source


  • Microsoft Visual Studio 2005

Source includes required boost libraries, built for VS2005. Due to this, the code is unlikely to link successfully in other build environments as is.

A screenshot from PubNet.