[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