私はboost asioでグリップを取得しようとしていますが、私は非同期インターフェイスの背後にあるいくつかの動作を理解するのに問題があります。TCP TXバッファがいっぱいになると、boost :: asioはどうなりますか?
私はクライアントとサーバーで簡単な設定をしています。
- クライアントは、サーバーがデータのポーリングを停止したときに何が起こるのデータ
- 定期的にデータ用のサーバーをポーリング
- 一定量のasync_write定期的に呼び出しますか?
さまざまなバッファがサーバーOSでいっぱいになり、ACKの送信が停止すると思いますか?
何が起こっても、クライアントは何らかのエラーコールバックを受信せずに数ギガバイトのデータを幸せに送信し続けることができるように思われます。
私はクライアントOSがTX'edできないので、ある時点でパケットの受け入れを停止すると仮定しますか?
これは、boost :: asioがデータを内部的にバッファリングすることを意味しますか?
もしそうなら、私は配信を待たないためにsocket.cancel()を使ってパケットをドロップできますか? (私はASIOが私のパケットについて忘れて、新しいパケットに古いバッファを再利用できるようにする必要があります)
詳細な回答と「時間の一回限りのコール」の先頭に感謝します。将来の参照のために、この回答http://stackoverflow.com/a/1998127/2510141も少しの洞察を提供します。 – user2510141