Hi all, I have a snippit from the linux sockets (below) talking about detecting when a socket is closed on the other end. It says the doing a read() will eventually inform you the socket is ECONNRESET. I am not seeing this I open a socket to the peer. I UNPLUG the peer. I plug back in the peer. all the time I am doing read()'s on linux and I get returns of -1 and errno is EINTR from the alarm() around my read() function. I never get ECONNRESET. Am I missing something in detecting the peer no longer having the socket connection? Thanks, Jerry ---------------------------- This text has been taken from the original FAQ. 2.1 - How can I tell when a socket is closed on the other end? From Andrew Gierth ( andrew at erlenstar.demon.co.uk): AFAIK: If the peer calls close() or exits, without having messed with SO_LINGER, then our calls to read() should return 0. It is less clear what happens to write() calls in this case; I would expect EPIPE, not on the next call, but the one after. If the peer reboots, or sets l_onoff = 1, l_linger = 0 and then closes, then we should get ECONNRESET (eventually) from read(), or EPIPE from write(). I should also point out that when write() returns EPIPE, it also raises the SIGPIPE signal - you never see the EPIPE error unless you handle or ignore the signal. If the peer remains unreachable, we should get some other error.