The code that you've written should work, although it will close the socket on any connection, not just the connection going away. In particular, if your socket is in non-blocking mode, syswrite can return errors (EAGAIN) if the other side simply isn't ready for more data.
If you are using non-blocking connections, or multiple connections at once, then the chances are you'll find the built-in function select, or the module IO::Select, very handy for telling when it's time to read/write to your sockets. The Perl Cookbook has a good example of this in section 17.13 (Non-Forking Servers).
Hope you find the above useful. Let me know if it doesn't solve your problem.
Cheers,
Paul
In reply to Re: How do i detect that the client has disconnected ? (i'm using sysread/write)
by pjf
in thread How do i detect that the client has disconnected ? (i'm using sysread/write)
by shlomi
| For: | Use: | ||
| & | & | ||
| < | < | ||
| > | > | ||
| [ | [ | ||
| ] | ] |