ネットワークバッファに空きが無い状態での振る舞い
https://docs.python.org/ja/3/howto/sockets.html#non-blocking-sockets
Pythonを用いてTCPのソケット通信を用いるプログラムを製作しています。
ソケットはselect()
を用いて制御しており、上記の文章を読んでいて気になる事がありました。通常のソケットのネットワークバッファは空いている状態がほとんどだと思いますのでsendall()
より随時データを書き込んでも問題は起きにくいと思われます。
ところが、ネットワークバッファに空きが無い状態で書き込むとどうなるのでしょうか?文献があまり無く、Blocking状態になるともパケットロスが生じるとも考えられ判断に困ります。もしロスが生じるならばselect()
によりフラグを確認しなければなりません。
質問した理由
TCP は到達性が保証されているのですがごく稀にデータが届かない事があります(ローカルでも再現します。ソケットで送信を確認済みなのでソケット自体に問題がありそうですがハッキリとわかりません。この問題は上記の仕様が関わっているのかの判断材料に質問しました。
何かわかる方は回答の方をよろしくお願いいたします。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/08/26 04:20
2020/08/26 07:48