我实现了NetworkStream
来读取和发送数据。有时我的Read()
命令大约需要5秒钟。数据量很小,< 100个字节。
这就像是在没有数据的情况下尝试阅读的东西。这5秒后没有收到任何数据(receivedLength = 0)。
read命令中是否有内置超时?我没有使用NetworkStream.ReceiveTimeout
,因为它会关闭连接。
问题似乎只出现在某些计算机上。
while (ReceiveStream.DataAvailable)
{
// Receive
lock (MessageBuffer)
{
int remainingLength = MessageBuffer.Length - MessageBufferUsedLength;
try
{
int receivedLength = ReceiveStream.Read(MessageBuffer, MessageBufferUsedLength, remainingLength);
}
catch(Exception e)
{
}
}
}
...