2017-09-25 87 views
-3

为什么java显示这个输出为每个端口连接是否需要像java基本框架或包以外的其他东西这些。我在基本的服务器客户端程序工作第一是客户端和第二是server.I尝试基本代码只有connection.but它显示了这个输出为什么它告诉我连接没有建立?

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) 

回答

0

您正在使用的DNS解析,以获得本地主机每一次,你会遇到连接到它时,超时,所以:

  • 要么你DNS解析器配置为关闭或被防火墙过滤的主机,

  • 或DNS解析程序将本地主机名解析为不是您的服务器之一并且已关闭或由防火墙过滤的IP。

这些是你可能有这样的超时,而不是主机不可达或端口不可达错误的两种主要情况。这个一个

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

所以,更换线路

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

解决您的问题。

相关问题