muscle  6.37
About: MUSCLE (Multi User Server Client Linking Environment) is a messaging server and networking API. The included server program ("muscled") lets its clients message each other, and/or store information in its serverside hierarchical database.
  Fossies Dox:  ("inofficial" and yet experimental doxygen-generated source code documentation)  

MUSCLE Documentation Page

The MUSCLE API provides a robust, somewhat scalable, cross-platform client-server solution for network-distributed applications for Linux, MacOS/X, BSD, Windows, BeOS, AtheOS, and other operating systems. It allows (n) client programs (each of which may be running on a separate computer and/or under a different OS) to communicate with each other in a many-to-many message-passing style. It employs a central server to which client programs may connect or disconnect at any time (This design is similar to other client-server systems such as Quake servers, IRC servers, and Napster servers, but more general in application). In addition to the client-server system, MUSCLE contains classes to support peer-to-peer message streaming connections, as well as some handy miscellaneous utility classes, all of which are documented here.

All classes documented here should compile under most modern OS's with a modern C++ compiler. Where platform-specific code is necessary, it has been provided (inside #ifdef's) for various OS's. Templates are used throughout; exceptions are not. The code is usable in multithreaded environments, as long as you are careful.

As distributed, the server side of the software is ready to compile and run, but to do much with it you'll want to write your own client software. Example client software can be found in the "test" subdirectory.