asio を使用しているときに発生する特有の問題を理解するための助けが必要です。
私はクライアントサーバーアプリを持っており、C ++クライアント(boost asioを使用)が2バイトのハートビート(たとえば、毎秒)をサーバー(Javaで記述)に送信します(大量のデータも受信します)。
かなりの数分間、サーバーは2バイトのハートビートを正しく受信しますが、その後、サーバーの「読み取り」は0バイトの読み取りを訴え、接続を閉じます(ブロッキング読み取りでは正しいと思います)。ただし、クライアントは常に正しい金額を転送していることを出力します。
私は、関数の「書き込み」ファミリのほぼすべてのバリアントを試しました。それらはすべて「write_some」に関して実装されていますか?それは、この動作が期待されていることを意味しますか?
基本的に、asio内で書き込み(少なくとも1バイト)を保証するものを探しています。どこが間違っているのかを理解するのを手伝ってください(さらに情報が必要な場合)...アドバイス、大歓迎です!ありがとう!