gpt4 book ai didi

java - Android 不接收广播 UDP,但接收定向 UDP

转载 作者:太空狗 更新时间:2023-10-29 13:39:13 26 4
gpt4 key购买 nike

我遇到一个问题,我的 Android 设备(HTC Incredible running stock 2.3.4 rom)无法接收广播 UDP,但是当我获得设备的 IP(在同一网络上)并发送时将数据包直接发送到 IP,手机会立即识别并解释它。我已经在两台不相关的 PC 上使用 WireShark 进行了测试,其中一台甚至不在该网络的同一台交换机上,并且两者都能够看到数据包(尽管他们确实称数据包为“格式错误”)但电话从未收到(它没有需要数据包中的任何数据)所以我想知道发生了什么。

模拟器中也发生了同样的事情。

这是当前代码。

                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 ,我需要围绕这个进行编程吗?

提前感谢您在这件事上给我的任何帮助。

最佳答案

尝试使用 multicastlock .看起来你的手机忽略了不是直接发给他的数据包(就像广播一样)。

答案有点晚了......但也许它可以帮助有同样问题的人。 :)

关于java - Android 不接收广播 UDP,但接收定向 UDP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7761061/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com