[英]What's wrong with my UDP client (android)?
final int SERVERPORT = 5902;
String SERVERIP = "HereTheIPOfMyPC"; //I have tried with "127.0.0.1", "10.0.2.2" and my local IP
CharSequence tosend = "Probandooooooooooo";
try {
DatagramSocket s = new DatagramSocket();
InetAddress local = InetAddress.getByName(SERVERIP);
byte[] message = tosend.toString().getBytes();
DatagramPacket p = new DatagramPacket(message,message.length, local, SERVERPORT);
s.send(p);
s.close();
} catch (Exception e) {
e.printStackTrace();
}
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.INTERNET"/>
我没有收到消息:S
注意:我的PC上有一个UDP服务器,并且在设备上尝试了该应用程序。
如果删除close()调用,数据报会到达吗?
如果是这样,您要查看SO_LINGER套接字选项,以便在仍有数据报要处理时,套接字仍然存在。
我认为您在模拟器中测试应用程序,如果可以的话检查
您必须将端口从本地实际的PC端口转发到虚拟仿真器端口。
您不能通过本地主机或127.0.0.1 IP从仿真器访问PC,而必须使用连接到LAN的实际PC IP。
如果您使用的是真实设备,还请检查您的设备是否已通过特定IP实际到达您的PC。
如果您尝试通过局域网,它将起作用。 如果您在WAN环境中尝试,将无法正常工作。
(Check NAT for more Details).
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.