打开Java套接字与Telnet?

时间:2013-04-15 06:26:45

标签: java sockets telnet

如果我执行以下代码(注意:不是使用的真实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进行套接字通信,但上述测试不应该从服务器获得某种及时的响应吗?

1 个答案:

答案 0 :(得分:2)

  

上述测试不应该从服务器得到某种及时的响应吗?

没有。 Telnet交换机不会从服务器向您发送任何内容开始。 必须发送一些东西。服务器在等你;你在等它;你是读取超时的那个,所以你得到了读取超时。

默认情况下,Telnet客户端不使用读取超时。