int readCount;
while ((readCount = ns.Read(data, 0, client.ReceiveBufferSize)) != 0)
{
dataString.Append(Encoding.UTF8.GetString(data, 0, readCount));
}
РЕДАКТИРОВАТЬ:
Как указывает mg30rg в комментариях, этот подход уязвим для клиентов, которые подключаются, а затем немедленно отключаются.Лучше проверить свойство DataAvailable
перед вызовом Read()
;в противном случае поток, очевидно, будет блокироваться на неопределенное время.
Кроме того, свойство Connected
, по-видимому, будет возвращать true
до тех пор, пока не будет вызван Read()
или Write()
, поэтому вы не сможете обнаружить эту ситуацию с помощьюиспользуя это свойство.