我打算创建一个应该在局域网上发现计算机的Android应用程序。我试着用ping广播地址。我有两个问题:
在Android中,我使用以下代码来确定地址:
InetAddress getBroadcastAddress()
{
try
{
WifiManager wifi = (WifiManager) getSystemService(Context.WIFI_SERVICE);
DhcpInfo dhcp = wifi.getDhcpInfo();
// handle null somehow
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);
}
catch (Exception e)
{
e.printStackTrace();
}
return null;
}
我应该使用什么地址?为什么我不能从局域网上的计算机获得任何ping?我该如何确定局域网上现有的计算机?
答案 0 :(得分:0)
方法错了。
我应该使用广播地址来发送特定消息,并从可以阅读和理解该消息的计算机接收回复,而不是对每台现有计算机执行ping操作。
这就是我最终完成任务的方式。