发送UDP包不能成功的有关问题

发送UDP包不能成功的问题
写了个程序,发送UDP报文。真机地址192.168.191.2,无线网关地址192.168.191.1。在无线网关抓包。
现象是:发送报文到无线网关192.168.191.1,则可以通过抓包看到真机发送过来的UDP报文。
如果发送报文到192.168.1.1或者其他的公网IP地址,则抓不到真机发送过来的预期的UDP报文。抓报文应该不会出错的,就是抓真机发送过来的所有UDP报文。
真机在该网络环境下可以正常上网,看网页等。
求指点!问题到底出在哪儿啊?本人新写安卓网络程序,被这个问题折腾好久了。

关键源码如下:
public static void testsendudp(String host) {
     try { 
     //首先创建一个DatagramSocket对象
     DatagramSocket socket = new DatagramSocket(); 
     socket.setSoTimeout(10);  
     //创建一个InetAddree 
     InetAddress serverAddress = InetAddress.getByName(host); 
     String str = "hello"; //这是要传输的数据
     byte data [] = str.getBytes(); //把传输内容分解成字节
     //创建一个DatagramPacket对象,并指定要将这个数据包发送到网络当中的哪个地址,以及端口号
     DatagramPacket packet = new DatagramPacket(data,data.length,serverAddress,123); 

     //调用socket对象的send方法,发送数据
     socket.send(packet); 
     Thread.sleep(1000);
     socket.close();
     }
     catch (Exception e) { 
     //e.printStackTrace(); 
     Log.i("SNTP", "exception:"+e.toString());
     }
     }

------解决方案--------------------
真机root过么?

另外,目标端口应该没限制啊。。。。
------解决方案--------------------
是可能被限制的。
------解决方案--------------------
引用:
Quote: 引用:

真机root过么?

另外,目标端口应该没限制啊。。。。


真机root过了。但是这个确实不加权限就只看到发送到无线网关的报文。


这个,你的代码不就是发送嘛。。。。有撒问题啊?
------解决方案--------------------
引用:
Quote: 引用:

Quote: 引用:

Quote: 引用:

真机root过么?

另外,目标端口应该没限制啊。。。。


真机root过了。但是这个确实不加权限就只看到发送到无线网关的报文。


这个,你的代码不就是发送嘛。。。。有撒问题啊?


你没有看仔细。我的代码是往几处地方发送报文。包括无线网关192.168.191.1,以及无线网关所在的局域网主机192.168.1.1,以及公网IP地址。但是,只看到发送到无线网关的报文,没看到发往其他两个地址的报文。加了权限就好了。


那,你是在哪里抓的包呢?手机上?