java - 使用 telnet 和服务器套接字连接到您自己的 PC。每次连接都被拒绝

标签 java sockets telnet

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

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

package cm3033.lab3.ex1nonthreadedechoserver;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class MainAppEx1NonThreadedEchoServer 
{ 
  public static void main(String[] args) 
  { 
    try 
    { 
      ServerSocket s = new ServerSocket(8189) ; 
      // listen for a connection request on server socket s
      // incoming is the connection socket
      for(;;)
      { 
        Socket incoming = s.accept() ; 
        // set up streams for bidirectional transfer
        // across connection socket 
        BufferedReader in = new BufferedReader 
          (new InputStreamReader(incoming.getInputStream())) ; 
        PrintWriter out = new PrintWriter 
          (incoming.getOutputStream(), true /* auto flush */) ; 
        out.println("You are connected to " + 
          incoming.getLocalAddress().getHostName() + 
          " on port " + incoming.getLocalPort() 
        ) ; 
        out.println("Type BYE to quit") ; 
        boolean done = false ; 
        while(!done) 
        { 
          String str = in.readLine() ; 
          if (str == null) 
            done = true ; 
          else 
          { 
            out.println("ECHO: " + str) ; 
            if (str.trim().equals("BYE")) 
              done = true ; 
          } 
        } 
        incoming.close() ;
      } 
    } 
    catch(Exception e) 
    { 
      System.out.println(e) ; 
    } 
  } 
}</code>

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

telnet error

最佳答案

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

改用telnet s-PC 8189

关于java - 使用 telnet 和服务器套接字连接到您自己的 PC。每次连接都被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34238785/

相关文章:

delphi - 需要使用 TIdTelnet 与 telnet 服务器交互的示例/演示

java - MySql 查询抛出错误

java - 使用来自 Parse.com 的数据填充 String[] 数组 (Android)

c - 关于使用 Sockets API 的基于 TCP 的简单回显服务器

c++ - QML - 如何在 ListView 上显示文本文件?

perl - 连接 Perl 的 Net::Telnet 时如何修复 "unknown terminal type"?

java - 将一个对象的值存储到另一个对象中

java - Eclipse count.fori 代码模板/后缀完成类似于 IntelliJ

linux - 函数指针指向 struct "proto_ops"的哪里?

C++ - 套接字服务器线程