私はUnixという名前のソケットに接続すると、どの条件でETIMEDOUTを受け取ることができますか?ソケットのタイムアウトが発生すると、 (Unix)
サーバがN秒間に()を受け付けなかった場合、Linuxではどのような典型的なNですか?
私はUnixという名前のソケットに接続すると、どの条件でETIMEDOUTを受け取ることができますか?ソケットのタイムアウトが発生すると、 (Unix)
サーバがN秒間に()を受け付けなかった場合、Linuxではどのような典型的なNですか?
サーバのオペレーティングシステムが接続を受け入れない場合は、N
秒です。 accept()
を呼び出すサーバーアプリケーションは、アプリケーションがaccept()
を呼び出すかどうかに関係なく、オペレーティングシステムが自動的に3方向ハンドシェイクを実行するため、通常は関連しません。 TCPスタックは、アプリケーションがこれを行うまで保留中の接続をキューに入れます(バックログの上限まで)。
通常、このタイムアウトは、サーバーが物理的にダウンしているか、ネットワークに通信エラーがある場合にのみ発生します。
Linuxのデフォルトは20秒だと思います。
私はあなたが 'accept()'でこれを見ることさえ疑うでしょう。あなたは 'send()'や 'recv()'や友達にそれを見るでしょう。 – EJP