2012-03-26 18 views
0

Javaで単純なエコーサーバーを作成しました。私はそれをローカルで試してみると、うまくいくはずです。しかし、サーバーが稼動しているIPアドレスとポート番号を使用して別のコンピュータから接続しようとすると、決して接続されません。別のコンピュータからサーバーに接続するために行うべきことはありますか?Javaサーバーを実行している別のコンピュータに接続する方法は?

import java.net.Socket; 
import java.net.ServerSocket; 

public class EchoServer { 

    public static void main(String[] args) throws Exception { 

     // create socket 
     int port = 4444; 
     ServerSocket serverSocket = new ServerSocket(port); 
     System.err.println("Started server on port " + port); 

     // repeatedly wait for connections, and process 
     while (true) { 

      // a "blocking" call which waits until a connection is requested 
      Socket clientSocket = serverSocket.accept(); 
      System.err.println("Accepted connection from client"); 

      // open up IO streams 
      In in = new In (clientSocket); 
      Out out = new Out(clientSocket); 

      // waits for data and reads it in until connection dies 
      // readLine() blocks until the server receives a new line from client 
      String s; 
      while ((s = in.readLine()) != null) { 
       out.println(s); 
      } 

      // close IO streams, then socket 
      System.err.println("Closing connection with client"); 
      out.close(); 
      in.close(); 
      clientSocket.close(); 
     } 
    } 
} 
+1

ファイアウォールがあなたの接続をブロックしている可能性があります。短いテストのために無効にしてみてください。あなたはルータによって他のコンピュータから分離されていますか? – Tudor

+2

コードを追加するサーバーソケットはどのように作成しますか? –

+0

'netstat -na'を呼び出して、サーバをバインドするアドレスを調べます。 0.0.0.0:*(または::: * ipv6の場合) –

答えて

0

これはあなたのLAN上にある場合は名前(実際のマシン名によって、あなたのEchoServerを実行しているマシンを参照してください、私は、彼らはあなたがそれを正しいこのエコーサーバ運動し投稿日チュートリアルのこの方法を行うには示して信じますか? )。それがうまくいけば、問題のトラブルシューティングに多くの助けになります。

1

次の事項を確認してください。

  1. サーバーコンピュータはネットワークプロキシの背後にありますか?

  2. からアクセスできる独立したパブリックIPアドレスを持っていますか。それとも、LAN上でアクセスできる内部IPを持っていますか?

  3. FireWallsには​​ポート4444の例外があることを確認してください。また、クライアントとサーバーの両方でFireWallsを無効にすることもできます。

解決しない場合は、(質問を編集して)取得している例外を投稿してください。または、サーバープログラムは何のエラーもなくフリーズしていますか?

+0

ファイアウォールがオフになっていることを確信しています。どのように最初の2つをチェックすることができますか? – ipman

+0

両方のコンピュータからhttp://ipchicken.com/を開きます。両方のIPが同じ場合、ネットワークプロキシの背後にあり、コンピュータに個別のパブリックIPがありません。 – tusar

関連する問題