About   Documentation   Download

Check Simple Server Objects project summary on SourceForge.

Simple Server Objects (ssobjects) are a set of objects meant to take the chore out of writing server and client applications that use TCP/IP sockets for communicating. It provides a consistent and stable interface. All of the grunt work of polling or selecting sockets, desiding what socket sent what, calling send() again if all data didn't get sent etc, is all taken care of by ssobjects.

ssobjects was designed to be cross plateform compatible. You can compile ssobjects on Linux and on Windows. This makes developing client apps on windows and server apps on Linux a breeze.

The goal of ssobjects is to provide a consistant, and easy to use interface, to be well documented, and widely used.

ssobjects originated from the ideas I had to create a few simple online games. Since then, the concepts have evolved into what they are now. Originally written completely for the Win32 plateform, they were later ported to Linux.

Simple Server Objects Status
ssobjects is currently stable, and no restructuring is planned for this version (version 1.0). There will be a few changes to improve the stability of the server objects as a whole. ssobjects version 2 will undergo some structural changes to make utilizing multiple threads a little easier.

Documentaion is almost complete. Most of the important objects public and protected methods and attributes have been documented. The less important and private will follow shortly after. Examples are a little sparse at the moment, but work is underway to write some excellant examples as well as a tutorial.

The three major sections to ssobjects are sockets, threads, and support objects. Some support objects were taken from other public domain sources, and modifed/fixed up for use in ssobjects. See the copyrights in the respective files.

Threads were originally implimented using Win32 threads, but when ssobjects was ported to Linux, pthreads was adopted for both Linux and Win32. Some names and structure still remain from the Win32 threading model, and libraries I originally used. It was a good model, and other helpper objects were created on top to make using them a little easier to use.

Purposed Changes To ssobjects
Structural changes are not planned for the current version, as the current layout is satisfactory. There are some obscurities when using SimpleServer as a multiple threaded server that I'd like to fix up, but it is still very usable.

Plans however are underway to simplify SimpleServer so it can be used as a server within a server. For example, to create your main server app by diriving it from SimpleServer, then including an admin port. The idea is to allow you create a SimpleServer object that runs along with the main

Known problems or not optimally designed issues include: exceptions could be better organized. SocketInstanceException could store the error code, and find the error string. Using SimpleServer & SimpleManager to create a multi-threaded server could be a little simpler. Documentation is incomplete, and examples are sparse.