|
From: David Leal on 3 Jul 2008 05:31 Hello all, I'm trying to get acquainted with network programming in Ruby and I'm facing several problems. The biggest 2 are 1) How do I detect a connection loss when it happens while the client is blocking, waiting for data? According to Stevens, most tcp implementations time out after 11 minutes, but I disconnected my cable and waited long after that--nothing. Is this my fault? Is it a ruby problem? 2) The client (an IRC bot) seems to be stuck sometimes. Suddenly, input stops, it stops logging data, everything stops. This happens on a particular IRC server (heinlein.freenode.net) in the middle of the MOTD, but happened a few days ago on another server during normal usage. The code I'm using is buffer = @socket.recvfrom(512).first messages = buffer.split /\n/ @messages.last << messages.shift \ if @messages.last && @messages.last[-1] != ?\r @messages += messages An interesting twist is that this doesn't happen on heinlein upon connection if I print the contents of the array I get from recvfrom. Seems to be some kind of flushing problem, but I don't know enough about it to be sure. Any ideas? Cheers, David -- Posted via http://www.ruby-forum.com/.
|
Pages: 1 Prev: method for assigned value Next: yet another regexp problem |