打开Java套接字与Telnet?

打开Java套接字与Telnet?,java,sockets,telnet,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:读取超时” 但如果我使用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:读取超时”

但如果我使用telnet,我会得到:

telnet> open 120.200.100.111 80
Trying 120.200.100.111...
Connected to foo.bar.org.
Escape character is '^]'.
请注意,我知道对于一个完整的应用程序,我应该使用某种现有的API进行套接字通信,但是上面的测试不应该从服务器得到某种及时的响应吗

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

不。Telnet exchange不会从服务器向您发送任何内容开始。你得送点东西。服务器正在等你;你在等待它;你是那个读超时的人,所以你有一个读超时


Telnet客户端默认不使用读取超时。

在这种情况下,服务器将发送“欢迎消息”。假设它应该在我一接通就吐出来,而我不发送任何东西,这是正确的吗?@George显然不是。Telnet客户端也没有看到它。尝试发送回车。已确认的服务器未履行合同。谢谢你的帮助。