我遇到了一个问题,我的Android设备(运行原始2.3.4 rom的HTC Incredible)无法接收广播UDP,但当我获取设备的IP地址(在同一网络上)并将数据包直接发送到该IP时,手机立即识别并解释它。我已经在两台不相关的PC上使用WireShark进行了测试,其中一台甚至不在这个网络的同一个交换机上,两台电脑都能看到数据包(尽管它们称呼数据包为“畸形”)。然而,手机从未收到过数据包(它不需要来自数据包的任何数据),所以我想知道发生了什么。
模拟器也出现了同样的问题。
以下是当前代码。
所以我的手机因某种原因拒绝接收UDP广播包,有没有办法测试一下它是否在我的手机上接收到了数据包?这是HTC Incredible问题 HTC issue 吗?我需要对此进行编程处理吗?
非常感谢您能在这个问题上提供任何帮助。
模拟器也出现了同样的问题。
以下是当前代码。
m_UDPSocket = new DatagramSocket( 9000 );
m_UDPSocket.setBroadcast( true ); // unneeded?
boolean finished = false;
byte[] buf = new byte[1024];
DatagramPacket packet = new DatagramPacket(buf, buf.length);
m_UDPSocket.setSoTimeout( 1000 );
do {
finished = true;
try
{
m_UDPSocket.receive(packet);
}
catch ( SocketTimeoutException e )
{
finished = false;
System.out.print( "Socket recieve timed out" );
}
} while( finished == false );
System.out.print( buf );
InetAddress address = packet.getAddress();
所以我的手机因某种原因拒绝接收UDP广播包,有没有办法测试一下它是否在我的手机上接收到了数据包?这是HTC Incredible问题 HTC issue 吗?我需要对此进行编程处理吗?
非常感谢您能在这个问题上提供任何帮助。