【问题标题】:What is being done incorrectly? (Java Server/Socket Programming)什么做错了? (Java 服务器/套接字编程)
【发布时间】:2010-11-11 19:20:37
【问题描述】:

我在连接服务器和套接字时遇到了一点问题。我确保 IP 是有效的,所以这不是地址不匹配的问题。也不是端口不匹配(我也测试过)。

以下是服务器处理程序

class ServerConnect extends Thread
{
   // ...
   public ServerConnect(int port, String pass) throws IOException
   {
      // ...
      this.start();
   }

   public void run()
   {
      try
      {
         // ...
         while (! server.isClosed()) // Make Connections
         {
            Socket newClient = server.accept();
            System.out.println("Connection Accepted!");
            // ...
         }

      }
      // ...
   }
}

这是插座连接器

class ClientConnect extends Thread
{
   // ...
   public ClientConnect(InetAddress ip, int port, String pass)
   {
      try
      {
         System.out.println("Connecting to host:\t" + ip.toString() + ":" + port);
         client = new Socket(ip, port);
         output = new PrintWriter(client.getOutputStream(), true);
         input = new Scanner(client.getInputStream());
         // ...
      }
      // ...
   }
   // ...
}

首先,我尝试在本地进行测试。我输入了我的 IP 和 IP 127.0.0.1,它们都将我连接到了我在本地设置的服务器。但是,然后我从另一个 IP 尝试,这就是发生的事情。建立连接的线程冻结了一会儿,然后简单地跳到异常并告诉我它找不到主机,而主机从来没有说它接受了连接。如果有帮助,我正在使用端口 4424 连接服务器。在我的代码中是否有任何可能导致这种情况发生的事情,或者我没有采取什么措施来防止这种情况发生?

另外,如果我没有提供足够的信息,请告诉我。我已经进行了大量测试,并且可以做更多的事情来帮助找出问题所在。

【问题讨论】:

  • 听起来像是防火墙问题。
  • 可能是防火墙问题,但我们还需要看看“服务器”是如何创建的。如果您将其绑定到 127.0.0.1,您将无法从其他计算机访问它。

标签: java connection serversocket


【解决方案1】:

听起来像是网络问题。您是否尝试从客户端计算机 ping 服务器?您是否测试过端口是否可达(使用 telnet 或在线端口测试器)?

只需在您选择的控制台中键入这两个命令,应该可以在大多数操作系统中运行,然后查看是否可以建立连接:

ping <hostname>
telnet <hostname> <port>

【讨论】:

    【解决方案2】:

    听起来服务器无法从客户端访问。您可以从客户端 ping 服务器的 IP 地址吗?服务器和客户端之间有防火墙吗?服务器是否运行本地防火墙?

    【讨论】:

    • 我肯定客户端可以访问服务器,但我认为服务器上有防火墙。有没有办法只允许通过该端口访问?也许是程序内部的方法?
    • @Matt:你怎么肯定客户端可以访问服务器?如果有防火墙,你必须在防火墙设置中打开端口。但是你能ping通机器吗?而且你的服务器没有绑定到localhost,对吧?
    猜你喜欢
    • 2018-09-09
    • 2011-10-01
    • 2016-02-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-02-11
    • 1970-01-01
    相关资源
    最近更新 更多