Android udp组播与以太网

时间:2013-08-20 18:33:26

标签: android udp multicast ethernet

大家好,

我正在使用udp多播进行项目。 我有一台服务器通过以太网线发送组播udp数据包。 我花了几周时间阅读有关Android上多播的所有帖子,我仍然无法在我的华硕Transformer Tablet 4.1上收到任何udp数据包。

由于某些原因,我不能把我的代码放在这里,我会尽力仔细解释。

我有一个简单的MainActivity显示一些东西。 几乎所有内容都是Oncreate方法,我调用名为UDPreceiver的方法的行也是如此。 此方法在名为UDPreceiverClass的类中定义。

UDPreceiver中,有一个接收组播udp的经典代码: Multicastsocket,joingroup ...... 我已经在我的计算机上的java程序中测试了这段代码,它正在运行。

在这个非常Oncreate的方法中,我已经获得了wifi锁:

WifiManager wifi = (WifiManager)getSystemService( Context.WIFI_SERVICE );
if(wifi != null){
    WifiManager.MulticastLock lock = wifi.createMulticastLock("Log_Tag");
    lock.acquire();
}

但我不确定是否必须使用相同的以太网连接(我没有找到任何其他类似的锁)。

我在清单中拥有所有权限:

<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE"/>

甚至更多(我已添加了与网络链接的所有权限)。

我很快就可以在Wifi上试用它,但我也不是很自信。

如果我以单播方式发送,我的代码正在使用我的平板电脑,而不是在多播中发送!

你对此有什么建议吗? 它是放置Wifi锁的正确位置吗?它甚至适用于以太网吗? 我知道有些设备不允许组播,是华硕变压器的情况吗?

我希望你能帮助我。 我知道这很复杂而没有看到代码,但是不可能,抱歉。

非常感谢!!

0 个答案:

没有答案