Networking 知道IP和端口时无法访问网络
我遇到错误“无法访问网络” 这是我收到的错误信息Networking 知道IP和端口时无法访问网络,networking,socketexception,Networking,Socketexception,我遇到错误“无法访问网络” 这是我收到的错误信息 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.App
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。因此,消息是“网络无法访问”
NullPointerException
——不是“网络无法访问错误”。看起来e.getMessage()
正在返回null
(这是完全合法的)。您需要检查该值,当它为null
时,不要尝试对其调用equals()
/192.168.1.2
判断,远程IP的格式不正确-不应该有正斜杠。尝试删除它