在 Java 中创建简单服务器后,Telnet 无法连接到本地主机
Telnet won't connect to localhost after I create a simple server in Java
现在,我在java中做了一个简单的服务器:
import Java.net.*;
import Java.io.*;
import Java.util.*;
class Server{
public static void main(String[] args){
int PORT = 13;
try(ServerSocket server = new ServerSocket(PORT)){
while(true){
try(Socket connection = server.accept()){
Writer out = new OutputStreamWriter(connection.getOutputStream());
Date now = new Date();
out.write(now.toString());
out.flush();
connection.close();
} catch(IOException ex){}
}
}
catch(IOException ex){
System.err.println(ex);
}
}
}
我从命令行编译并运行。在端口 13 上,我尝试在 telnet 上 运行 这样:telnet localhost 13
但它给我的只是 "Connection to host lost"。请注意,我是在 Windows 10 上启用 telnet 并安装它之后执行此操作的。我是否缺少一个简单的步骤?
在您的程序中,发生了以下事件:
- 服务器开始于 13
- telnet localhost 13 : 连接到该服务器
- 连接一建立,服务器就发送日期
- 您将在您的客户端上看到日期
- out.flush() 说客户端我写完了
- telnet 客户端不理解服务器命令(日期)
- telnet 关闭连接
Telnet - Connection to host lost - on port 1099 in local machine
Telnet won't connect to localhost ...
是的。这就是为什么它说 'connection to host lost' 而不是 'connection refused'.
事情是这样的。您编码了:
connection.close();
你得到了:
connection to host lost
您关闭了连接; Telnet 告诉你了。
这就是应该发生的事情。
这里没有问题可以解决
否则您在服务器接受循环中遇到 I/O 异常。
但由于您忽略了它们,因此无法说出是哪一个。
现在,我在java中做了一个简单的服务器:
import Java.net.*;
import Java.io.*;
import Java.util.*;
class Server{
public static void main(String[] args){
int PORT = 13;
try(ServerSocket server = new ServerSocket(PORT)){
while(true){
try(Socket connection = server.accept()){
Writer out = new OutputStreamWriter(connection.getOutputStream());
Date now = new Date();
out.write(now.toString());
out.flush();
connection.close();
} catch(IOException ex){}
}
}
catch(IOException ex){
System.err.println(ex);
}
}
}
我从命令行编译并运行。在端口 13 上,我尝试在 telnet 上 运行 这样:telnet localhost 13
但它给我的只是 "Connection to host lost"。请注意,我是在 Windows 10 上启用 telnet 并安装它之后执行此操作的。我是否缺少一个简单的步骤?
在您的程序中,发生了以下事件:
- 服务器开始于 13
- telnet localhost 13 : 连接到该服务器
- 连接一建立,服务器就发送日期
- 您将在您的客户端上看到日期
- out.flush() 说客户端我写完了
- telnet 客户端不理解服务器命令(日期)
- telnet 关闭连接
Telnet - Connection to host lost - on port 1099 in local machine
Telnet won't connect to localhost ...
是的。这就是为什么它说 'connection to host lost' 而不是 'connection refused'.
事情是这样的。您编码了:
connection.close();
你得到了:
connection to host lost
您关闭了连接; Telnet 告诉你了。
这就是应该发生的事情。
这里没有问题可以解决
否则您在服务器接受循环中遇到 I/O 异常。
但由于您忽略了它们,因此无法说出是哪一个。