【问题标题】:Connecting to your own PC using telnet and Server Sockets. Get connection rejected each time使用 telnet 和服务器套接字连接到您自己的 PC。每次都拒绝连接
【发布时间】:2016-03-18 06:23:31
【问题描述】:

我在下面粘贴了我的整个代码,其中大部分与问题无关。我正在尝试创建一个 Java 服务器,然后使用 telnet 连接到它(在同一台 PC 上)并输出随机字符串。到目前为止,我无法克服每次 telnet 到我的 PC 时连接被拒绝的情况。由于某种原因,我在课堂上成功连接到我的大学计算机,但不在家里。

我在下面列出了代码。是否有我应该打开的端口,或者这可能是 Windows 10 的问题或其他问题?我对 Sockets 很陌生,因此我真的不知道我在说什么。

包 cm3033.lab3.ex1nonthreadedechoserver;
导入 java.io.BufferedReader;
导入 java.io.InputStreamReader;
导入 java.io.PrintWriter;
导入 java.net.ServerSocket;
导入 java.net.Socket;

公共类 MainAppEx1NonThreadedEchoServer
{
  公共静态无效主要(字符串 [] 参数)
  {
    尝试
    {
      ServerSocket s = 新 ServerSocket(8189) ;
      // 监听服务器套接字 s 上的连接请求
      //传入的是连接套接字
      为了(;;)
      {
        套接字传入 = s.accept() ;
        // 为双向传输设置流
        // 跨连接套接字
        BufferedReader in = 新的 BufferedReader
          (新 InputStreamReader(incoming.getInputStream())) ;
        PrintWriter out = 新的 PrintWriter
          (incoming.getOutputStream(), true /* 自动刷新 */) ;
        out.println("你已连接到" +
          传入.getLocalAddress().getHostName() +
          “在端口上”+incoming.getLocalPort()
        ) ;
        out.println("键入 BYE 退出") ;
        布尔完成 = 假;
        而(!完成)
        {
          字符串 str = in.readLine() ;
          如果(str == null)
            完成=真;
          别的
          {
            out.println("ECHO:" + str);
            if (str.trim().equals("BYE"))
              完成=真;
          }
        }
        传入.close() ;
      }
    }
    捕获(异常 e)
    {
      System.out.println(e) ;
    }
  }
}

下图是我尝试 telnet 时收到的消息。

【问题讨论】:

  • 您收到“连接被拒绝”或“连接超时”。不是“连接被拒绝”。请勿在此处发布文字图片。发布文本。

标签: java sockets telnet


【解决方案1】:

您尝试在不提供端口号的情况下进行 telnet,因此默认为 23。但是您已使用端口 8189 设置服务器。

请改用telnet s-PC 8189

【讨论】:

  • 天哪,这太简单了,但我太傻了……这行得通。非常感谢:)
猜你喜欢
  • 2016-09-12
  • 2013-10-13
  • 2012-02-21
  • 2015-09-30
  • 1970-01-01
  • 2015-06-03
  • 2016-12-26
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多