在 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 并安装它之后执行此操作的。我是否缺少一个简单的步骤?

在您的程序中,发生了以下事件:

  1. 服务器开始于 13
  2. telnet localhost 13 : 连接到该服务器
  3. 连接一建立,服务器就发送日期
  4. 您将在您的客户端上看到日期
  5. out.flush() 说客户端我写完了
  6. telnet 客户端不理解服务器命令(日期)
  7. 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 异常。

但由于您忽略了它们,因此无法说出是哪一个。