0
我一直在网上搜索一些解决方案o我的问题,但我根本无法使255.255.255.255
广播工作。Android广播到255.255.255.255不工作
String broadip = "255.255.255.255";
DatagramSocket socket= new DatagramSocket(PORT);
InetAddress address = InetAddress.getByName(broadip);
socket.setReuseAddress(true);
socket.setBroadcast(true);
InetSocketAddress sAddress = new InetSocketAddress(broadip, PORT);
socket.bind(sAddress);
int length = this.buffer.length;
DatagramPacket packet = new DatagramPacket(this.buffer, length,address,PORT);
socket.send(packet);
socket.close();
当它到达socket.bind(sAddress)
线,它抛出一个异常“无法绑定”。我也尝试“跳过”这个绑定行,套接字发送数据包,但其他机器永远不会收到这个数据包。
奇怪的是下面的代码工作得很好,但只将数据包发送到192.168.25.8
,我需要一个广播,而不是:
String broadip = "192.168.25.8";
DatagramSocket socket= new DatagramSocket(PORT);
InetAddress address = InetAddress.getByName(broadip);
socket.setReuseAddress(true);
socket.setBroadcast(true);
int length = this.buffer.length;
DatagramPacket packet = new DatagramPacket(this.buffer, length,address,PORT);
socket.send(packet);
socket.close();
有Android清单权限:
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.CHANGE_WIFI_MULTICAST_STATE" />
<uses-permission android:name="android.permission.READ_PROFILE" />
<uses-permission android:name="android.permission.READ_CONTACTS" />
谁都可以帮帮我?
你可以试试这个ip来广播:172.16.0.0看到https://en.wikipedia.org/wiki/Broadcast_address – nafas
https://stackoverflow.com/a/15913678/2657100 – nandsito
我的回答对你有帮助吗? – Kaushal28