I'm sending messages via udpsend and receiving them in Processing. Here are some examples of how the messages arrive:
(hello) => "hello***,***";
(hello world) => "hello***,s***world***";
(list hello world) => "list****,ss*hello***world***";
(list "hello, world") => "list****,s**hello, world*";
(list hello, world) => "list****,s**hello***" followed by "world***,***";
Where * = null byte.
I think I've figured out what's happening here.* But does anybody know where this is actually documented?
*For the curious: Seems to be a series of c strings, each padded out to a multiple of 4 bytes. The first string is the "message name", the second is a comma followed by one letter for each arg (s, i, or f). The rest are the args. In the last example, the comma causes two separate messages to be sent.