現在のプロジェクトでは、tcp/ip ソケット接続を介して XML データを要求する必要があります。このために、私は TcpClient クラスを使用しています。
Dim client As New TcpClient()
client.Connect(server, port)
Dim stream As NetworkStream = client.GetStream()
stream.Write(request)
stream.Read(buffer, 0, buffer.length)
// Output buffer and return results...
現在、これは小さな応答に対してうまく機能します。しかし、より大きなデータ ブロックの受信を開始すると、データがソケット接続を介してバーストでプッシュされているように見えます。これが発生すると、stream.Read 呼び出しは最初のバーストのみを読み取るため、残りの応答を見逃してしまいます。
この問題を処理する最善の方法は何ですか? 最初は、有効な XML ドキュメントが作成されるまでループしようとしましたが、stream.Read 呼び出しの合間に、基になるストリームがシャットダウンされ、データの最後の部分を見逃すことがあることがわかりました。