From: gwtmp01@... Date: 2007-01-23T13:28:05+09:00 Subject: Re: Socket issue On Jan 22, 2007, at 10:59 PM, Marc Soda wrote: > First, thanks for your answer. I agree with you, however, my > understanding was that after the client side kernel flushes it's > buffers from the second send(2) (the first send after the server dies) > the server would send a RST back. If I were to go about other > processing and not even touch the socket again I should still receive > and SIGPIPE. Is this not true? The SIGPIPE is sent when you attempt to write to the socket, not when the kernel receives the RST. So in your example, the timeline looks like: client server ------------------------------ listen connect accept abort <-----------FIN write sleep | 'hello' --------> | <----------- RST write: SIGPIPE That is a pretty lame diagram but I hope it clarifies things. FYI, this is a behavior of the underlying socket abstraction, not something particular to Ruby. Gary Wright