On Wed, Apr 28, 2021 at 02:00:35PM +0200, Jörn Nettingsmeier wrote:
Ah, that might explain why I never got OSC over TCP
going with standard
tools - I thought I was just being stupid...
Can't find any official reference to this, but one way to send OSC over
TCP was to prefix each packet with a 32-bit int (in network byte order
of course) giving the lenght of the packet [1]. IIRC there was even some
RFC about sending any type of packets over TCP by doing exactly that.
In 1.1 this was replaced by SLIP encoding, destroying the nice 32-bit
alignment of all data elements that we had before. Apparently this
was selected only because the OSC authors happened to have some
hardware using SLIP encoding -- not a good idea IMHO.
OSC has IMHO some serious design flaws. One of them being that a client
can force the server to either fail or store an arbitrary amount of
state (bundles, regexes,...). No problem for a PC, but surely one for
e.g. an Arduino with 16 kB of RAM.
[1] This is also how OSC is stored in some files, e.g. Tetraproc configs.
Ciao,
--
FA