我继承了一些循环通过 BinaryReader 的响应的代码,它工作正常(返回 2 个字节)一段时间,但随后客户端需要一段时间来响应(我假设)并且代码陷入困境逻辑。
我找不到任何关于 ReadByte() 将等待多长时间的文档,它似乎等待大约 3 秒,然后失败。
有谁知道 ReadByte 是如何工作的?我可以将其配置为以某种方式等待更长的时间吗?我的代码如下,谢谢。
public virtual Byte[] Send(Byte[] buffer, Int32 recSize) {
Byte[] rbuffer = new Byte[recSize];
var binaryWriter = new BinaryWriter(stream);
var binaryReader = new BinaryReader(stream);
Int32 index = 0;
try {
binaryWriter.Write(buffer);
do {
rbuffer[index] = binaryReader.ReadByte(); // Read 1 byte from the stream
index++;
} while (index < recSize);
} catch (Exception ex) {
Log.Error(ex);
return rbuffer;
}
return rbuffer;
}
PS - 代码中的 recSize 为 2,它总是期望返回 2 个字节。