K.Maebashi's BBS

ご自由に書き込んでください。雑談も可。
テスト書き込みの類はテスト用掲示板にどうぞ

[日付順表示] [日付順インデックス] [スレッド順インデックス]

新規投稿 | 開設者ホームページへ戻る | ヘルプ

[1958] 書籍「Webサーバを…」の1.3.3について
投稿者:E2E4E9E4
2016/07/30 00:31:48

お世話になります。 以前に1.5.4について質問させていただいたものです。 その節はありがとうございました。(お礼が遅れてすみません) 今回もまた質問させてください。 p24では、「( 先にブラウザを閉じてしまうと、ソケットが閉じられて、ソケット切断後はInputStream.read()は-1を返すのですが、TcpServerはそれに対するチェックを入れていないので無限ループに入ります……)」とあります。 これは、 「(TcpServerは、17行目でクライアントから終了マークである0を受け取るまで処理を継続するようになっていますが、本物のWebブラウザはこのような終了マークを送らないからです)」 とすべきではないでしょうか。 実際に先にブラウザを閉じてしまうと、TcpServerは「java.net.SocketException: Connection reset」の例外をcatchしてスタックトレースを吐いた後に終了します。
[この投稿を含むスレッドを表示] [この投稿を削除]
[1959] Re:書籍「Webサーバを…」の1.3.3について
投稿者:(ぱ)こと管理人
2016/08/01 01:02:12

>実際に先にブラウザを閉じてしまうと、TcpServerは「java.net.SocketException: Connection reset」の例外をcatchしてスタックトレースを吐いた後に終了します。 確認しました。 確かにIEで試すと、例外を吐いて終了しました。 ただ、Firefoxで試すと、やはり-1を返して無限ループに入りました。 本書は対象をIEとうたっているので何らかのフォローはしようと思いますが、 FirefoxとIEで動きがどう違うのか、現時点ではわかっていません。
[この投稿を含むスレッドを表示] [この投稿を削除]