繁体   English   中英

UDP客户端(android)有什么问题?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM