2017-09-25 2 views
-3

Pourquoi Java affiche cette sortie pour toutes les connexions de port Et est-il besoin de quelque chose comme le cadre de base ou un paquet en Java autre que ceux-ci.je travaille sur le client de base du programme client est le client et le second est serveur.J'ai essayé le code de base pour seulement connection.but il montre cette sortie chaque foisPourquoi me montre-t-elle que cette connexion n'est pas établie?

import java.io.*; 
      import java.net.*; 
      class DateClient 
      { 
       public static void main(String args[]) throws Exception 
       { 
        Socket soc=new Socket(InetAddress.getLocalHost(),5217);   
        BufferedReader in=new BufferedReader(new InputStreamReader(soc.getInputStream() )); 
        System.out.println(in.readLine()); 
       }  
      } 




import java.net.*; 
      import java.io.*; 
      import java.util.*; 
      class DateServer 
      { 
       public static void main(String args[]) throws Exception 
       { 
        ServerSocket s=new ServerSocket(5217); 
        while(true) 
        { 
         System.out.println("Waiting For Connection ..."); 
         Socket soc=s.accept(); 
         DataOutputStream out=new DataOutputStream(soc.getOutputStream()); 
         out.writeBytes("Server Date: " + (new Date()).toString() + "\n"); 
         out.close(); 
         soc.close(); 
        } 
       } 
      } 


     THIS IS OUTPUT 

     output:= 
       Exception in thread "main" java.net.ConnectException: Connection timed out: conn 
       ect 
         at java.net.DualStackPlainSocketImpl.connect0(Native Method) 
         at java.net.DualStackPlainSocketImpl.socketConnect(Unknown Source) 
         at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source) 
         at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source) 
         at java.net.AbstractPlainSocketImpl.connect(Unknown Source) 
         at java.net.PlainSocketImpl.connect(Unknown Source) 
         at java.net.SocksSocketImpl.connect(Unknown Source) 
         at java.net.Socket.connect(Unknown Source) 
         at java.net.Socket.connect(Unknown Source) 
         at java.net.Socket.<init>(Unknown Source) 
         at java.net.Socket.<init>(Unknown Source) 
         at DateClient.main(DateClient.java:8) 

Répondre

0

vous utilisez le résolveur DNS pour obtenir le nom d'hôte local, et que vous rencontrez un délai d'attente lors de la connexion, donc:

  • soit votre Le résolveur DNS est configuré sur un hôte qui est arrêté ou filtré par un pare-feu,

  • ou le résolveur DNS résout le nom d'hôte local en adresse IP qui n'est pas celle de votre serveur et qui est en panne ou filtrée par un pare-feu.

Ce sont les deux principaux cas pour lesquels vous pourriez avoir un délai d'attente, au lieu d'un hôte inaccessible ou port erreur injoignable.

, remplacez la ligne:

Socket soc = new Socket(InetAddress.getLocalHost(),5217); 

par celui-ci:

Socket soc = new Socket(InetAddress.getLoopbackAddress(), 5217); 

pour résoudre votre problème.