[解決済み] TCPクライアントの切断を検出する
2023-04-30 10:52:33
質問
例えば、簡単なサーバを運用しているとして、そのサーバに
accept()
を実行し、クライアントからの接続があったとします。
クライアントが切断されたことを知るための最良の方法は何でしょうか。通常、クライアントはクローズコマンドを送信することになっていますが、手動で切断したり、ネットワーク接続を完全に失ったりした場合はどうなるのでしょうか? サーバーはどのようにこれを検出し、処理することができるでしょうか。
どのように解決するのですか?
select (読み取りマスクを設定した場合) はハンドルを通知して戻りますが、 ioctl* を使って読み取りの保留バイト数を確認すると、0になります。これは、ソケットが切断されたことを示すサインです。
クライアントが切断されたことを確認するためのさまざまな方法に関する素晴らしい議論です。 Stephen Cleary, ハーフオープン(切断)コネクションの検出 .
* Windowsではioctlsocketを使用してください。
関連
-
[解決済み】Visual Studio 2015で「非標準の構文; '&'を使用してメンバーへのポインターを作成します」エラー
-
[解決済み] string does not name a type Errorが発生するのはなぜですか?
-
[解決済み】変数 '' を抽象型 '' と宣言できない。
-
[解決済み】IntelliSense:オブジェクトに、メンバー関数と互換性のない型修飾子がある
-
[解決済み】テンプレートの引数1が無効です(Code::Blocks Win Vista) - テンプレートは使いません。
-
[解決済み】エラー:free(): 次のサイズが無効です(fast)。
-
[解決済み】C++ - ステートメントがオーバーロードされた関数のアドレスを解決できない。
-
[解決済み】警告 - 符号付き整数式と符号なし整数式の比較
-
[解決済み】c++で.txtファイルから2次元の配列に読み込む
-
[解決済み] Mac OS Xで、指定したTCPポートでリッスンしているのは誰ですか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】C++ 非推奨の文字列定数から「char*」への変換について
-
[解決済み] error: 'ostream' does not name a type.
-
[解決済み] string does not name a type Errorが発生するのはなぜですか?
-
[解決済み】「corrupted size vs. prev_size」glibc エラーを理解する。
-
[解決済み] 非常に基本的なC++プログラムの問題 - バイナリ式への無効なオペランド
-
[解決済み】エラー:不完全な型へのメンバーアクセス:前方宣言の
-
[解決済み】指定範囲内の乱数で配列を埋める(C++)
-
[解決済み] 解決済み] `pthread_create' への未定義の参照 [重複] [重複
-
[解決済み】クラスのコンストラクタへの未定義参照、.cppファイルの修正も含む
-
[解決済み】Visual Studioのデバッガーエラー。プログラムを開始できません 指定されたファイルが見つかりません