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.