首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >哪里做得不正确?(Java服务器/套接字编程)

哪里做得不正确?(Java服务器/套接字编程)
EN

Stack Overflow用户
提问于 2010-11-12 03:20:38
回答 2查看 210关注 0票数 0

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

以下是服务器处理程序

代码语言:javascript
复制
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!");
            // ...
         }

      }
      // ...
   }
}

这是插座连接器

代码语言:javascript
复制
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与服务器连接。在我的代码中有没有什么东西可能会导致这种情况,或者我没有采取什么措施来防止这种情况发生?

另外,如果我没有提供足够的信息,请让我知道。我已经做了大量的测试,可以做更多的工作来帮助找出哪里出了问题。

EN

回答 2

Stack Overflow用户

发布于 2010-11-12 03:30:32

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

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

代码语言:javascript
复制
ping <hostname>
telnet <hostname> <port>
票数 1
EN

Stack Overflow用户

发布于 2010-11-12 03:30:25

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4158378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档