title: Can Socket.Receive() return 0 if the connection is still open?
body: <p>I am writing a C# .NET server application that sends and receives data over Sockets, and I am having some issues if the client application crashes without closing the socket the right way.</p>
  
  <p>I have set the 'receive timeout' to a given value, and I expected the Socket.Receive() to throw an exception after that amount of time. But instead the method just returns 0.</p>
  
  <p>So my question is: Is it possible that the socket is still open if the <code>Socket.Receive()</code> returns 0? Or can I safely assume that it is down?</p>
  
  <p>(Might be a bit tricky to understand. If so, please let me know in the comments)</p>