.NET allows two very similar ways to \"read\" from the network (assuming TCP connection):
1. TcpClient.GetStream().Read() 2. TcpClient.Client.Receive()
To me, a successful Socket.Receive operation with zero bytes received tells you that connection is closed.
Socket.Receive