我想清空套接字的读取缓冲区,所以我编写了以下代码...
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++。我该如何解决这个问题?
最佳答案
您可以使用 DataAvailable属性以查看在调用 Read 方法之前是否有任何要读取的内容。
关于c# - 如何在不阻塞的情况下调用 NetworkStream.Read()?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1006119/