Selector
がsockets
を受け入れ、それを他のスレッドが処理するためのキューにプッシュしていて、スレッドがソケットを受け取っていない(たとえば2分)と、クライアントがデータをプッシュしてからタイムアウトして切断します。 thread
が現在閉鎖しているものの1つをsockets
に取り込み、そこから読み取ろうとすると、すでにクライアントから送信されたデータが取得されるのでしょうか、それとも読み取るデータはありませんか?バイトが読み込まれる前に接続が切断された場合、TCPソケット接続上のバイトは失われますか?
0
A
答えて
1
「切断された」という意味に依存します。
- 自分でソケットを閉じた場合、さまざまな
read()
メソッドからSocketException: socket closed
が得られます。 - ピアによって正常に接続が閉じられた場合、ストリームの終わりが通知される前にすべての保留データが読み取られます。
- 接続が強制的にリセットされた場合、保留中のデータはすべて失われます。
+0
よろしくお願いします。私は2番目が私のサーバー上で見ていると思います。 「中断したリセット」が何を意味するのかを明確にすることはできますか? –
+1
接続が正しく終了する代わりにリセットされるさまざまな状況があります。プロセスは終了せずに終了します(Windows)。ソケット読み込みバッファに未読データが残っている間に、プロセスはソケットを閉じます。ホストは、その終わりですでに閉じている接続のためのデータを受信します。これらのすべてがTCP RSTを発行します。 – EJP
関連する問題
- 1. 接続が切断された場合、MSSQLは接続を選択します
- 2. 再接続後にTCPデータが失われました。
- 3. C#/ Javaソケット接続が失われましたか?
- 4. ブルートゥースデバイスが接続/切断されている場合にブロードキャストしますか?
- 5. マルチスレッド - TCP接続の切断
- 6. SSH接続が失われました
- 7. 接続が失われた場合、TCPクライアントアプリケーションでのboost :: asio :: readの読み込みには時間がかかります
- 8. 接続されたデータグラムソケットを切断して再接続する
- 9. 接続が紛失/切断されたMySQLロールバック
- 10. PHPソケット接続 - 接続が拒否されました
- 11. NHibernateの例外:トランザクションが接続されていない、または接続が切断されている
- 12. ソケット接続をループすると、最終的にインターネット接続が切断されます。
- 13. 切断されたネットワークドライブの再接続
- 14. 接続が失われた場合のRxAndroidBleのリセット通知
- 15. 接続が切断された後にDBが再接続しない
- 16. .NET Frameworkには、接続されたプロパティまたは接続ビヘイビアが組み込まれていますか?
- 17. スイッチング後にマルチペラ接続セッションが切断されました
- 18. C/C++ソケット:前に何かすればIPv6のTCP接続に失敗する
- 19. KubernetesのJenkinsスレーブの接続が切断されました。
- 20. TCP接続が失われたときの検出
- 21. C#インターネット接続が失われたときにMySQL接続が失敗する
- 22. Webサービスクライアントの接続が切断されました
- 23. GCP Bigtable Pythonクライアントの接続が切断されました
- 24. ソケットが60秒間静かになる場合にのみ、6バイトが失われますか?
- 25. キーボードが接続/切断されたときのWin32の判断
- 26. GKE + WebSocket + NodePort 30s接続が切断されました
- 27. SSIS接続が切断されました
- 28. Cの接続が失われた
- 29. 接続が失われた場合、javascriptはサーバー側に再接続しません。
- 30. プログラムでTCP/IPソケット接続を切断する方法はありますか。
閉じたソケットから読み取ることはできません。 – Berger