【发布时间】:2011-09-09 23:20:05
【问题描述】:
我正处于开发跨平台 UDP 服务器客户端的早期阶段。在我的例子中,客户端通过移动热点选项向他们连接的安卓手机发送广播。
我目前正在通过在同一设备上安装服务器和客户端来测试这一点。但是,我只知道如何获取广播地址,这要归功于 boxee 远程应用程序。
是否有人知道一种方法可以与下面的代码相同,但获取移动网络广播地址?
所以,这里是代码:
InetAddress getBroadcastAdd(Context context) throws IOException {
WifiManager wifi = (WifiManager) context.getSystemService(Context.WIFI_SERVICE);
DhcpInfo dhcp = wifi.getDhcpInfo();
int broadcast = (dhcp.ipAddress & dhcp.netmask) | ~dhcp.netmask;
byte[] quads = new byte[4];
for (int k = 0; k < 4; k++)
quads[k] = (byte) ((broadcast >> k * 8) & 0xFF);
return InetAddress.getByAddress(quads);
}
对于目光敏锐的读者,您可能已经知道我实际上不需要此代码来使应用程序工作,因为其他设备将从 wifi 获取广播地址,但我确实需要在这台设备上进行一些测试首先。
提前致谢!
【问题讨论】:
标签: java android networking udp