2014-04-01 22 views
0

我有错误的问题“网络不可达”网络不可达,而知道的IP和端口

这是错误消息我得到

04-01 23:39:06.455: E/ClientActivity(1932): Client Send Error:/192.168.1.25444 
04-01 23:39:06.455: W/System.err(1932): java.lang.NullPointerException 
04-01 23:39:06.463: W/System.err(1932):  at edu.dongthang.controller.AppDelegate$ClientThread.sendMessage(AppDelegate.java:93) 
04-01 23:39:06.463: W/System.err(1932):  at edu.dongthang.controller.AppDelegate.sendMessage(AppDelegate.java:35) 
04-01 23:39:06.463: W/System.err(1932):  at edu.dongthang.controller.Controller.sendToAppDel(Controller.java:101) 

,当我在错误信息

at edu.dongthang.controller.AppDelegate$ClientThread.sendMessage(AppDelegate.java:93) 

点击指向线

if (e.getMessage().equals("Network unreachable")) 

的方法

public void sendMessage(String message) throws SocketException{ 
     try { 
      buf = message.getBytes(); 
      if (buf != null) { 
       DatagramPacket out = new DatagramPacket(buf, buf.length, 
         serverAddr, serverPort); 
       socket.send(out); 
       network_reachable = true; 
      } 

     } catch (Exception e) { 
      Log.e("ClientActivity", "Client Send Error:" + serverAddr + serverPort); 
      if (e.getMessage().equals("Network unreachable")) { 
       Log.e("ClientActivity", "Netork UNREACHABLE!!!!:"); 
       network_reachable = false; 
      } 
      closeSocketNoMessge(); 
     } 


    } 

我不知道为什么,而我真的有IP 192.168.1.2 =和端口= 5444的话,该消息是“网络不可达”

回答

1
  1. 根据到您发布的日志中,您有一个NullPointerException - 不是“网络不可达错误”。它看起来像e.getMessage()返回null(这是完全合法的每the docs)。您需要检查该值,而不是在null上尝试呼叫equals()

  2. 根据日志消息中的/192.168.1.2判断,您的远程IP格式不正确 - 在那里不应该有正斜杠。尝试删除它。

相关问题