0

サーバーとソケットを接続するのに少し問題があります。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 を使用してサーバーに接続しています。私のコードでこれを引き起こす可能性のあるものはありますか、またはこれを防ぐために私がしていないことはありますか?

また、十分な情報を提供していない場合はお知らせください。私は多くのテストを行ってきましたが、何が間違っているのかを理解するためにさらに多くのことを行うことができます.

4

2 に答える 2

1

ネットワークの問題のようです。クライアント マシンからサーバーに ping を実行しようとしましたか? ポートが到達可能かどうかを (telnet またはオンライン ポート テスターを使用して) テストしましたか?

選択したコンソールでこれら 2 つのコマンドを入力するだけで、ほとんどの OS で動作し、接続が確立できるかどうかを確認できます。

ping <hostname>
telnet <hostname> <port>
于 2010-11-11T19:30:31.717 に答える
0

クライアントからサーバーに到達できないようです。クライアントからサーバーの IP アドレスに ping を実行できますか? サーバーとクライアントの間にファイアウォールはありますか? サーバーはローカル ファイアウォールを実行していますか?

于 2010-11-11T19:30:24.673 に答える