1

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

4

1 に答える 1