在用Java创建一个简单的服务器后,Telnet不会连接到localhost

时间:2018-05-16 22:13:05

标签: java server localhost telnet

现在,我在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但它给我的全部是"连接到主机丢失"。请注意,我在Windows 10上启用telnet并安装后执行此操作。我有一个简单的步骤吗?

2 个答案:

答案 0 :(得分:0)

  

Telnet将无法连接到localhost ...

是的,确实如此。这就是为什么它说'连接到主机丢失'而不是'拒绝连接'。

这就是发生的事情。你编码:

connection.close();

你得到了:

  

与主机丢失的连接

你关闭了连接; Telnet告诉过你。

这就是应该发生的事情。

这里没有问题需要解决。

否则您在服务器接受循环中遇到了I / O异常。

但是因为你忽略了它们,所以不可能说出来。

答案 1 :(得分:-1)

在您的计划中,发生以下事件:

  1. 服务器从13开始
  2. telnet localhost 13:连接到该服务器
  3. 一旦建立连接,服务器就会发送日期
  4. 您将在客户端上看到日期
  5. out.flush()说客户我写完了
  6. telnet客户端不了解服务器命令(日期)
  7. telnet关闭连接
  8. Telnet - Connection to host lost - on port 1099 in local machine