2010-12-05 17 views
0

Je crée un programme de conversation Java très simple, en utilisant les sockets Java TCP. Je suis nouveau à la programmation socket et Java. Je ne peux pas me connecter au serveur, car chaque fois que le client se connecte au serveur, il expire. Peut-être, c'est parce que je tape la mauvaise adresse IP - je ne sais pas.Aide du programme Java Chat simple, Délai d'attente du client lors de la connexion au serveur

Voici le code pour le serveur:

 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()); 
     } 

Voici le code pour le client:

 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()); 
     } 

Répondre

0

vérifiez que vous pouvez vous connecter au serveur en utilisant telnet (sous Windows, vous devrez peut-être pour l'installer car il n'est plus installé par défaut).

essentiellement, ouvrir une connexion à votre serveur et voir que cela fonctionne:

telnet host port 

si cela fonctionne, peut-être le problème est pas portant création de l la connexion, mais dans l'attente d'une réponse du serveur (ajoutez le exception à votre question).

une note: vous pouvez ouvrir un socket sans créer l'INetAddress comme vous l'avez fait, juste un nouveau socket (nom d'hôte, port).