[PD-dev] [tcpsocketserver] - a protocol-aware wrapper around [tcpserver]

Hans-Christoph Steiner hans at eds.org
Mon Jan 12 21:26:51 CET 2009


This looks very cool, we need an easy to use OSC replacement for  
dumpOSC/sendOSC.  One thing, I get this when I load them:

  unpackOSCstream
... couldn't create
  unpackOSCstream
... couldn't create
  packOSCstream
... couldn't create
  packOSCstream
... couldn't create

I can't find those anywhere.

.hc

On Jan 11, 2009, at 8:40 PM, Roman Haefeli wrote:

> hi all, hi martin
>
> as pointed out in a previous thread, it's tricky to use [tcp*] object
> classes for transporting packet oriented protocols, such as OSC or  
> FUDI.
> when dealing with [tcpserver], the situation gets even more tricky.  
> when
> several clients are connected to a [tcpserver] and they all send  
> data in
> a packet oriented protocol simultaneously, the packets from several
> sockets might get mixed up on the server side, since tcp is not
> packet-aware and frames sent by clients might get splitted (or even
> concatenated). the only way i found to overcome that problem, was to
> make [tcpserver] protocol-aware, so that it keeps track of the several
> incoming streams and creates protocol-compliant packets out of them.  
> on
> the other hand, i wanted a generic solution, that could be extended  
> with
> support for more protocols than initally implemented. that is why i
> made:
>
> [tcpsocketserver <protocol> <port>]
>
> from what i understand, it works the same way, as other servers for a
> packet-oriented protocol work. whenever a new client connects,
> [tcpsocketserver] dynamically creates an instance of a socket handler,
> an abstraction, that is called [ŧcpsocket.PROTOCOLNAME]. all data
> received on that socket is sent to the appropriate handler. the  
> handler
> contains the code, that forms proper packets from the incoming stream
> and sends the packets back to [tcpsocketserver]. no matter in what  
> order
> and in what frame sizes the streams are received, [tcpsocketserver]  
> only
> outputs valid, protocol-compliant packets.
>
> yet, two protocols are supported: OSC and FUDI. support for the  
> protocol
> FOO can be added by creating another socket handler, naming it
> tcpsocket.FOO.pd and putting in the code, that makes FOO-packets out  
> of
> the incomding stream. then it can be called with [tcpsocketserver FOO
> 1234].
>
> i hope this all makes sense to you. comments are welcome, of course.  
> if
> you, martin, find it useful, i'd be glad, if this could make it into  
> the
> mrpeach library.
>
> my main purpose for doing this was to be able to transmit OSC  
> packets in
> a multiclient<->server environment, which is finally working well  
> since
> [tcpsocketserver].
>
> http://www.romanhaefeli.net/software/pd/tcpsocketserver.tar.gz
>
>
> roman
>
>
> 		
> ___________________________________________________________
> Telefonate ohne weitere Kosten vom PC zum PC: http:// 
> messenger.yahoo.de
>
>
> _______________________________________________
> Pd-dev mailing list
> Pd-dev at iem.at
> http://lists.puredata.info/listinfo/pd-dev



----------------------------------------------------------------------------

Man has survived hitherto because he was too ignorant to know how to  
realize his wishes.  Now that he can realize them, he must either  
change them, or perish.    -William Carlos Williams






More information about the Pd-dev mailing list