调试Android UDP监听
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了调试Android UDP监听相关的知识,希望对你有一定的参考价值。
我想在我的android
模拟器中获取本地网络上远程计算机发送的一些传入数据。首先,
InetAddress[] inetAddress = InetAddress.getAllByName(android_emulator_ip);
s = new DatagramSocket();
s.connect(inetAddress[0], some_udp_port);
我得到了运行android_emulator_ip
的adb shell;ifconfig eth0
。这个IP
是远程计算机使用的。
奇怪的是,如果我将这个ip
更改为随机的,我会在我的断点调试器中获取DatagramSocket对象,值isConnected =true
顺便说一下,我无法在下面发现任何错误。如果我在以下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);
}
问题与使用connect
and有关,因此将模拟器放在服务器而不是监听器的位置
以上是关于调试Android UDP监听的主要内容,如果未能解决你的问题,请参考以下文章
如何在android中去listview适配器项目点击监听器片段?
SSokit--windows和mac通用的socket调试工具