Selector
がsockets
を受け入れ、それを他のスレッドが処理するためのキューにプッシュしていて、スレッドがソケットを受け取っていない(たとえば2分)と、クライアントがデータをプッシュしてからタイムアウトして切断します。 thread
が現在閉鎖しているものの1つをsockets
に取り込み、そこから読み取ろうとすると、すでにクライアントから送信されたデータが取得されるのでしょうか、それとも読み取るデータはありませんか?バイトが読み込まれる前に接続が切断された場合、TCPソケット接続上のバイトは失われますか?
0
A
答えて
1
「切断された」という意味に依存します。
- 自分でソケットを閉じた場合、さまざまな
read()
メソッドからSocketException: socket closed
が得られます。 - ピアによって正常に接続が閉じられた場合、ストリームの終わりが通知される前にすべての保留データが読み取られます。
- 接続が強制的にリセットされた場合、保留中のデータはすべて失われます。
+0
よろしくお願いします。私は2番目が私のサーバー上で見ていると思います。 「中断したリセット」が何を意味するのかを明確にすることはできますか? –
+1
接続が正しく終了する代わりにリセットされるさまざまな状況があります。プロセスは終了せずに終了します(Windows)。ソケット読み込みバッファに未読データが残っている間に、プロセスはソケットを閉じます。ホストは、その終わりですでに閉じている接続のためのデータを受信します。これらのすべてがTCP RSTを発行します。 – EJP
関連する問題
- 1. C#/ Javaソケット接続が失われましたか?
- 2. ブルートゥースデバイスが接続/切断されている場合にブロードキャストしますか?
- 3. SSH接続が失われました
- 4. マルチスレッド - TCP接続の切断
- 5. 接続が紛失/切断されたMySQLロールバック
- 6. 接続されたデータグラムソケットを切断して再接続する
- 7. NHibernateの例外:トランザクションが接続されていない、または接続が切断されている
- 8. 接続が切断された後にDBが再接続しない
- 9. ソケット接続をループすると、最終的にインターネット接続が切断されます。
- 10. 切断されたネットワークドライブの再接続
- 11. .NET Frameworkには、接続されたプロパティまたは接続ビヘイビアが組み込まれていますか?
- 12. Webサービスクライアントの接続が切断されました
- 13. Cの接続が失われた
- 14. キーボードが接続/切断されたときのWin32の判断
- 15. ソケットが60秒間静かになる場合にのみ、6バイトが失われますか?
- 16. 接続が失われた場合、javascriptはサーバー側に再接続しません。
- 17. SSIS接続が切断されました
- 18. Notes接続が失われたクライアント
- 19. 接続が切断またはタイムアウトした場合にデータベース接続をリフレッシュしてください
- 20. EC2のNodeJsとNowJsとの接続が切断されます
- 21. 接続中に接続が失われた場合、クエリは正しいですか?
- 22. C#ソケット接続が次のwinformで失われる
- 23. C#:ソケットの問題 - 数秒後に接続されたソケットが切断される
- 24. "エラー:既に接続されているソケットで接続要求が行われました"
- 25. 接続のいずれかハングcrossbar.ioまたは切断する
- 26. サーバーが切断されたときに強制的にTCP接続を切断する
- 27. QNetworkReply - 最初に書き込まれたバイトなどの接続が確立されました
- 28. Informixに接続されたOracleのリモートエージェントエラーへのRPC接続が失われました
- 29. 接続が失われた後にNamedPipeClientStreamに再接続する(.NET)
- 30. Android BluetoothSocketはすぐに接続後に切断されます
閉じたソケットから読み取ることはできません。 – Berger