11584 tcpserver/linux 131760 tcpclient/OS X
On Sun, 2009-02-22 at 17:30 -0500, Martin Peach wrote:
I just tried with 2 machines having [tcpserver] (WinXP) repeatedly send to [tcpclient] (Ubuntu) while I pulled out the cable from one machine. The server keeps sending until it disconnects about a minute later with message "tcpserver: not a valid socket number (-1)" The client however thinks it's still connected and I need to disconnect before reconnecting to be able to resume communication. So there's no crash there.
i tested the same with different results. after having send 11584 bytes from [tcpserver] on ubuntu to [tcpclient] on OS X, that got disconnected from ethernet, the pd instance of [tcpserver] didn't respond anymore. after plugging in the ethernet cable again, the client on OS X did receive all data in one message after a few seconds. after this happened, the server responded again. the difference to your test was, that i sent all data (11584 bytes) in _less_ than a minute, so the server didn't print the message: "tcpserver: not a valid socket number (-1)"
i also tested it the other way around: client (OS X) connects to server (linux) and then i plugged out the cable and started sending messages from the client to the server. the client pd instance stopped responding after having sent 131760 bytes. i don't know, if this difference comes from different buffer sizes on [tcpserver] and [tcpclient] or from different implementations on both OS'. however, also here: after a few seconds after plugging in the cable again, the server received the whole chunk as one message and the client started to respond again.
It's probably the buffer overflow. Then I modified [tcpserver] to check if the socket is writeable first, using select(). This causes messages to appear when the buffer overflows instead of blocking at the send() call, but it doesn't close the socket. I gave select a one second timeout, which should allow time for zero-logical time multiple messages to get out. Maybe you could try it (I just uploaded it to the svn at http://pure-data.svn.sourceforge.net/viewvc/pure-data/trunk/externals/mrpeac...) and see if anything changes.
cool! many thanks for your effort. i am happy to perform some further tests.
roman
___________________________________________________________ Der frühe Vogel fängt den Wurm. Hier gelangen Sie zum neuen Yahoo! Mail: http://mail.yahoo.de