我想清空套接字的读取缓冲区,所以我写了以下代码...

byte[] tempBuffer = new byte[1024];
int readCount = 0;
while ((readCount = tcpSocket.GetStream().Read(tempBuffer, 0, tempBuffer.Length)) != 0)
{
    // do with tempBuffer
}

但是Read()方法被阻止了,所以我添加了 tcpSocket.ReceiveTimeout = 1; 。它的工作原理与以前一样。

据我所知,这通常在C++中使用。我怎么解决这个问题?

最佳答案

在调用Read方法之前,可以使用DataAvailable属性查看是否有任何要读取的内容。

09-25 17:24