java - TCPソケットがピアによって正常に閉じられたことをI/Oを試みることなく検出できないのはなぜですか?

java - TCPソケットがピアによって正常に閉じられたことをI/Oを試みることなく検出できないのはなぜですか?

最近の質問のフォローアップとして、私はTCPでソケットの読み書きを試みることなく、ソケットが正常に閉じられたことをJavaで検出できないのはなぜですか? これは、プリNIO SocketかNIO SocketChannelどちらを使用するかにかかわらず、そうであるようSocketChannel 。 ピアが正常にTCP接続を閉じると、接続の両側にあるTCPスタックはその事実を知ります。 サーバー…


tcp - サーバー側の多くのTIME_WAITのコストはいくらですか?

サーバーへの短期間の接続を頻繁に行うクライアントがあるとしましょう。 クライアントが接続を閉じると、クライアント側にTIME_WAIT状態の多くのポートが存在します。 クライアントにはローカルポートが不足しているため、新しい接続をすばやく行うことは不可能になります。 サーバーが接続を閉じると、サーバー側に多くのTIME_WAITが表示されます。 しかし、これは何らかの害を及ぼしますか? クライ…


SO_REUSEADDR(setsockoptオプション)の意味は何ですか?Linux?

この質問には既に回答があります: ソケットオプションSO_REUSEADDRとSO_REUSEPORTはどう違うのですか? 彼らはすべての主要なオペレーティングシステムで同じ意味ですか? 1つの答え マニュアルページから: SO_REUSEADDR bind()に提供されたアドレスを検証する際に使用されるルールが、ローカル・アドレスがプロトコルによってサポートされている場合は、そのアド…



sockets - TCPオプションSO_LINGER(ゼロ)-必要なとき

私はオプションの正式な意味を理解していると思います。 私が今取り扱っているいくつかのレガシーコードでは、オプションが使用されています。 顧客は、FSTへの応答として、その側から接続が近い側のRSTについて苦情を言います。 私はそれがいつ使用されるべきか理解していないので、私はそれを安全に取り外すことができないのか分かりません。 オプションが必要な場合の例を挙げてください。…


close()がソケットを正しく閉じていない

私は、20スレッドを使用して、多数の要求(1つのノードに対して最大500/秒)を処理するマルチスレッドサーバー(スレッドプール)を持っています。 着信接続を受け入れ、ハンドラスレッドが処理するためにそれらをキューに入れるリスナスレッドがあります。 応答が準備できたら、スレッドはクライアントに書き込み、ソケットを閉じます。 最近まで、全てがうまくいっていたようで、テストクライアントプログラムは応答…


sockets - バークレーソケットファサードWinRTネットワークの妥当性?

これは私がZeroMQメーリングリストに送った投稿のコピーです。 しかし、この問題は、ZeroMQに固有のものではなく、より一般的には、WinRTでコンパイルするときにC++コードのためのより一般的な「バークレーソケットファサード」を提供するためにWinRTで提供されるネットワーク機能よりも、 こんにちは、iPhoneとAndroidのバージョンではモバイルアプリ( http://www.ib…


language agnostic - クローズドTCPソケットを読んでいるよりも悪いのはなぜですか?

閉じたTCPソケットを読むと、通常のエラーが発生します。つまり、EOFまたは-1を示す0と、 perrorで出力可能なerrnoエラーコードが返されerrno 。 しかし、クローズドTCPソケットを作成すると、OSはSIGPIPEをあなたのアプリケーションに送信します。 クローズドTCPソケットを読み込むよりも悪いのはなぜですか?…


sockets - ソケット上のデータを再読み込みする

私はシンプルなサーバー/クライアントのUDPソケットプログラムを作成しており、問題が発生しました。 問題は、recvfrom()関数が最後に送信されたデータを再読み込みすることです。 したがって、クライアントからサーバに2つのパケットを送信すると、recvfrom()は最初のパケットを読み込み、そのデータを出力します。その後、2番目のパケットは何度も何度も何度も読み込まれます。 私が理解し…




ソケット socket オプション tcp shutdown setsockopt クローズ so_rcvtimeo linux close