Beefy Boxes and Bandwidth Generously Provided by pair Networks
Your skill will accomplish
what the force of many cannot
 
PerlMonks  

Re: Socket programming

by SuicideJunkie (Priest)
on Nov 12, 2008 at 15:34 UTC ( #723192=note: print w/ replies, xml ) Need Help??


in reply to Socket programming

Please try to edit your posts to add/correct things instead of making new ones with the same question. http://perlmonks.org/?node_id=723152

It is definitely possible to have sockets die without notice, such that the while loop won't exit. I suffered that when I wrote a telnet-based multiplayer market trading game.

What I did was to select from the current connections, and carefully read a byte at a time.
Once there is enough to act on, I call whatever functions need calling. (If not, buffer the input so far, and loop back to the select)

If one of the connections dies silently and unexpectedly, the select won't pick it to read from since there is no more input to read. After a few minutes of no activity, the dead/timed-out connections can be closed.


Comment on Re: Socket programming
Download Code
Re^2: Socket programming
by Illuminatus (Curate) on Nov 12, 2008 at 16:11 UTC
    If the connection is via a WAN or the Internet, then what you are describing can occur. Within a local network, it is much less likely. This is a TCP socket. When either side receives a FIN, the result in the application is an EOF. When a process dies, in almost all instances, open sockets are closed by the OS, resulting in a FIN going to the remote side. On a LAN, the receipt of this is almost certain. On a WAN, intervening equipment/hops can cause packet or session loss.
      Indeed it is a rare occurrence, but in a single-threaded server, one eternal wait event is all that is required to take the system down.

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://723192]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others wandering the Monastery: (7)
As of 2014-09-22 07:02 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    How do you remember the number of days in each month?











    Results (182 votes), past polls