1

オープン ソース アプリケーション (quickfix 1.13.3) で、定義されたポートのソケットに送信されたデータを読み取ろうとしているときに問題が発生しました。

この問題は、サーバーがデータを送信し、その直後にソケットを閉じるときに発生します。その後、私のコードは最後に送信されたデータを読み取ることができず、10054 エラーがスローされます。サーバーがソケットを閉じない場合、正常に受信できることに注意してください。

これは、サーバーからデータを受信するために使用しているコードで、あなたの助けを待っています。

int size = recv( m_socket, m_buffer, sizeof(m_buffer), 0 );

TCPClient を使用してデータを受信すると問題なく動作しますが、これにより別のクイックフィックス アプリケーションが作成されることに注意してください。これは、数か月のハードワークが失われ、クイックフィックスに似たアプリケーションを作成するためにさらに数か月かかることを意味します。

4

1 に答える 1

0

サーバーが RST を送信した場合、セマンティックな意図は、処理中のデータを失うことです。サーバーは通常、それを行うビジネスはありません。問題はその先です。より大きなソケット受信バッファを使用してウィンドウ処理を変更し、より高速に読み取ることを除いて、クライアント側でできることは何もありません。

于 2012-09-18T21:22:26.203 に答える