次のコードを実行すると (注: 使用されている実際の IP アドレスではありません)
Socket s = new Socket("120.200.100.111", 80);
s.setSoTimeout(10 * 1000);
BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));
in.readLine();
10 秒後、「SocketTimeoutException: Read timed out」が表示されます
しかし、telnet を実行すると、次のようになります。
telnet> open 120.200.100.111 80
Trying 120.200.100.111...
Connected to foo.bar.org.
Escape character is '^]'.
完全なアプリケーションでは、ソケット通信に何らかの既存の API を使用する必要があることは承知していますが、上記のテストでは、サーバーから何らかのタイムリーな応答を取得するべきではありませんか?