Last modification: 11/17/98. Current SocketMan version: 1.3
It seems like everybody I know has implemented their own Unix socket code many times over. Some versions work better than others; some have enough features to satisfy most needs; some have too many features; and some have strange behavior in certain cases. I decided that I wanted a fast, robust, and easy-to-use socket interface for my current and future projects. Such an interface would abstract away all of the low-level details and make it easy to implement a client-server model, which is the model I deal with most often. In addition, IP multicasting support was desirable for creating group-oriented applications in which the client-server model is not suitable.
SocketMan (short for Socket Manager) is a set of C++ classes that does the above. Using SocketMan, it is easy to implement a fast, robust client/server pair which provides:
Version 1.3 of SocketMan is now available and includes the following features:
The SocketMan package consists of:
The distribution includes libraries compiled for the following ("currently supported") platforms:
The package socketman-1.3.tar.gz includes source code and compiled libraries of both SocketMan/SocketClient 1.3 and SemaphoreSwapper 1.0 for the above platforms. Also includes many test programs for both the client/server and multicast models.
The following copyright notice is adapted from that covering GLUT:
The programs in the SocketMan distribution were developed by Kenneth B. Russell and are Copyright 1994, 1995, 1998 Kenneth B. Russell. The programs are not in the public domain, but are freely distributable without licensing fees. These programs are provided without guarantee or warranty expressed or implied.
Please send me email if you find any problems with the distribution, bugs, or have any comments or questions.
The Ivy package, a Scheme binding for Open Inventor, now includes built-in support for accessing the SocketMan class library from within Scheme. This provides robust, easy-to-use network support within an interpreted language environment.
$Id: index.html,v 1.6 2001/06/02 05:16:19 kbrussel Exp $