nottcp 0.0.4 README 05/07/03 (C)2003 Martin Voelkel (martin@rumori.de) THIS OBJECT ----------- this object provides an interface between MAX messages and the Open Transport TCP network abstraction layer. its purpose is to send and receive data over a TCP connection. it provides also the functionality necessary to establish such a connection both at client (aka active) and server (aka passive) side. it was designed for use in conjunction with the OpenSoundControl object by Matt Wright at CNMAT, see http://www.cnmat.berkeley.edu/OpenSoundControl it is possible to use this object for the transmission of data other than OSC messages. to process the binary packets output from this object you will most probably have to write a max external. See the max help of this object for details on the messages this object understands and outputs. OR LOOK INTO THE CODE. LIMITATIONS ----------- for now, the most significant limitation is the maximum number of inbound TCP connections at the same time: it is limited to 1 (in words: "one"). strictly speaking, this is also true for outbound connections, but if you want to connect to several hosts, simple use several nottcp objects. if you want to accept connections from different hosts, you will have to use several nottcp objects, which can't listen to the same port. since there are other tasks i have to do, i am not able to stay in ongoing development efforts for this object. feel free to make improvements to this object: see LICENSE. this object is intented to be used with MAX4 PPC OpenTransport. there are no precautions in the code for use in an 68k environment. LICENSE ------- this object is FREE SOFTWARE. it is licensed under the Lesser General Public License. this means in short: you may use this object free of charge, whatever you want to do with it, and you may change the source code as you want, as long as you make your changes freely available as this object is. this object is actually a shared library. the LGPL (in difference to the GPL) allows the use of this library together with non-free software by linking. this is especially an issue when using this object with MAX, which is its purpose. MAX is non-free software and using this object within MAX has to be considered as a link process. see the LICENSE file and http://www.gnu.org/licenses/ for details. BUGS ---- - in server mode after each disconnect a rebind of the endpoint is done (seems to be necessary). not very nice - unbinding after disconnecting from a client is done by a 100 ms max timer (otherwise kOTStateChangeErr). not very nice - wblock does not work in overdrive - this is both my first Max external and OpenTransport hack TODO ---- see LIMITATIONS. - exhaustive testing - multiple connection support - better cleanup - beautify and re-organize the code (multiple modules...) ACKNOWLEDGEMENTS ---------------- this object was inspired and its creation was supported by Matt Wright and CNMAT, the developer of OpenSoundControl. special thanks to Gerhard Eckel at Fraunhofer Institute for Media Communication, St. Augustin, Germany, who provided major support for the development of this object. CHANGELOG ---- version date 0.0.4 05/07/2003 reduced verbosity once again. fixed bugs in sending status messages 0.0.3 03/15/2003 reenabled rebinding after disconnection in server mode 0.0.3 03/15/2003 reduced verbosity (startup message) 0.0.2 03/06/2003 added TCP NoDelay option (nagle algorithm turned off) 0.0.2 03/06/2003 crash while copying connected object in overdrive 0.0.1 02/18/2003 first release