Look at NetworkStream.Read, or depending on what you are using in your code maybe TCPClient.GetStream is more appropriate, but basically the same answer.
From the docs:
This method reads data into the buffer
parameter and returns the number of
bytes successfully read. If no data is
available for reading, the Read method
returns 0. The Read operation reads as
much data as is available, up to the
number of bytes specified by the size
parameter. If the remote host shuts
down the connection, and all available
data has been received, the Read
method completes immediately and
return zero bytes.
Look at NetworkStream.Read, or depending on what you are using in your code maybe TCPClient.GetStream is more appropriate, but basically the same answer.
From the docs: