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 バイトが返されることを期待しています。