2010-12-05 15 views
0

私は非常にシンプルなJavaチャットプログラムを作成しており、Java TCPソケットを使用しています。私はソケットプログラミングとJavaの新しいです。クライアントがサーバーに接続するたびにタイムアウトするため、サーバーに接続できません。多分、私は間違ったIPアドレスを入力しているからです - わかりません。ここでシンプルなJavaチャットプログラムのヘルプ、サーバーとの接続時のクライアントのタイムアウト

は、サーバーのコードです:ここで

 try 
     { 

      int fport = Integer.valueOf(port.getText()); 
      ServerSocket server = new ServerSocket(fport); 
      Socket socket = server.accept(); 
      msg.append("\\n Server is listening to port:" + port.getText()); 
      BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream())); 
      PrintWriter out = new PrintWriter(socket.getOutputStream()); 
      out.print(msgtxt.getText()); 
      msg.append("\n\n" + input.readLine()); 
      msg.append("\n\n" + Nombre.getText() + msgtxt.getText()); 


     } 
     catch (Exception ex) 
     { 
      msg.setText("\n\n" + "Error:" + ex.getMessage()); 
     } 

は、クライアントのコードです:

 try 
     { 
      int iport = Integer.valueOf(port.getText()); 
      int i1; 
      int i2; 
      int i3; 
      int i4; 
      i1 = Integer.valueOf(ip.getText()); 
      i2 = Integer.valueOf(ip1.getText()); 
      i3 = Integer.valueOf(ip2.getText()); 
      i4 = Integer.valueOf(ip3.getText()); 
      byte[] b = new byte[] {(byte)i1, (byte)i2, (byte)i3, (byte)i4 }; 
      InetAddress ipaddr = InetAddress.getByAddress(b); 
      Socket sock = new Socket(ipaddr, iport); 
      BufferedReader input = new BufferedReader(new InputStreamReader(sock.getInputStream())); 
      BufferedWriter output = new BufferedWriter(new OutputStreamWriter(sock.getOutputStream())); 
      output.write(m.getText()); 
      while(!input.ready()){} 
      msg.setText("\n\n" + input.readLine()); 
      msg.setText("\n\n" + m.getText()); 
      output.close(); 
      input.close(); 
     } 
     catch (Exception ex) 
     { 
      msg.setText("\n\n" + "Error: " + ex.getMessage()); 
     } 

答えて

0

は、Telnetを使用してサーバーに接続できることを確認します(Windowsの場合に必要となる可能性がありますデフォルトではインストールされていないのでインストールします)。

基本的には、サーバーへの接続をオープンし、それが動作することを参照してください。

telnet host port 

それが動作するかどうか、多分問題は(追加の接続をestablisingではなく、サーバーからの応答を待っているではありませんあなたの質問に対する例外)。

ワンノート: 新しいソケット(ホスト名、ポート)だけで、INetAddressを作成せずにソケットを開くことができます。

関連する問題