Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在Android手机的wifi网络中进行广播_Android_Sockets_Network Programming_Android Wifi - Fatal编程技术网

如何在Android手机的wifi网络中进行广播

如何在Android手机的wifi网络中进行广播,android,sockets,network-programming,android-wifi,Android,Sockets,Network Programming,Android Wifi,我有一个安卓手机网络,其中一部手机充当服务器。我尝试使用目标IP作为'255.255.255.255.进行广播。但它无法发送消息。我给下面的日志。服务器IP为192.168.43.1。我也尝试过使用'192.168.43.255'。但结果也是徒劳的。对于代码,我已经提到了 下面是用于获取广播IP的代码 private InetAddress getBroadcastAddress() throws IOException { mWifi= (WifiManager) get

我有一个安卓手机网络,其中一部手机充当服务器。我尝试使用目标IP作为
'255.255.255.255.
进行广播。但它无法发送消息。我给下面的日志。服务器IP为
192.168.43.1
。我也尝试过使用
'192.168.43.255'
。但结果也是徒劳的。对于代码,我已经提到了

下面是用于获取广播IP的代码

   private InetAddress getBroadcastAddress() throws IOException {
        mWifi= (WifiManager) getSystemService(Context.WIFI_SERVICE);
        DhcpInfo dhcp = mWifi.getDhcpInfo();
        if (dhcp == null) {
          Log.d("BCast Address Fetch", "Could not get dhcp info");
          return null;
        }

        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);
        }
private InetAddress getBroadcastAddress()引发IOException{
mWifi=(WifiManager)getSystemService(Context.WIFI_服务);
DhcpInfo dhcp=mWifi.getDhcpInfo();
如果(dhcp==null){
Log.d(“BCast地址获取”,“无法获取dhcp信息”);
返回null;
}
int broadcast=(dhcp.ipAddress&dhcp.netmask)|~dhcp.netmask;
字节[]四元组=新字节[4];
对于(int k=0;k<4;k++)
四元组[k]=(字节)((广播>>k*8)和0xFF);
返回InetAddress.getByAddress(quads);
}

这是我用来获取广播地址的

for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
 NetworkInterface intf = en.nextElement();
 for (InterfaceAddress address : intf.getInterfaceAddresses()) {
   System.out.println(address.getBroadcast().toString().substring(1));;
 }
}
for(枚举en=NetworkInterface.getNetworkInterfaces();en.hasMoreElements();){
NetworkInterface intf=en.nextElement();
for(InterfaceAddress地址:intf.getInterfaceAddress()){
System.out.println(address.getBroadcast().toString().substring(1));;
}
}

参考链接中的代码是一个简单的TCP服务器/客户端。如果您发布用于UDP广播的代码会更好。

Netmask是255.255.255.0。我已经编辑了这个问题,添加了用于查找广播地址的代码。就我而言,它是192.168.43.255
for (Enumeration<NetworkInterface> en = NetworkInterface.getNetworkInterfaces(); en.hasMoreElements();) {
 NetworkInterface intf = en.nextElement();
 for (InterfaceAddress address : intf.getInterfaceAddresses()) {
   System.out.println(address.getBroadcast().toString().substring(1));;
 }
}