调试Android UDP监听

人生处万类,知识最为贤。这篇文章主要讲述调试Android UDP监听相关的知识,希望能为你提供帮助。
我想在我的android模拟器中获取本地网络上远程计算机发送的一些传入数据。首先,

InetAddress[] inetAddress = InetAddress.getAllByName(android_emulator_ip); s = new DatagramSocket(); s.connect(inetAddress[0], some_udp_port);

我得到了运行android_emulator_ipadb shell; ifconfig eth0。这个IP是远程计算机使用的。
奇怪的是,如果我将这个ip更改为随机的,我会在我的断点调试器中获取DatagramSocket对象,值isConnected =true
【调试Android UDP监听】顺便说一下,我无法在下面发现任何错误。如果我在以下s.receive(p); 区块中记录try之后,似乎没有被阅读
byte[] message = new byte[300]; DatagramPacket p = new DatagramPacket(message,message.length); try{ s.receive(p); }catch{...}

答案我调试它以这种方式设置超时
s = new DatagramSocket(some_udp_port); s.setSoTimeout(3000);

然后这工作
byte[] message = new byte[256]; DatagramPacket p = new DatagramPacket(message,message.length); try{ s.receive(p); }

问题与使用connectand有关,因此将模拟器放在服务器而不是监听器的位置

    推荐阅读