J'ai cherché sur Internet pour certaines solutions à mon problème, mais je ne peux tout simplement pas faire le travail de diffusion 255.255.255.255
.Android de diffusion au 255.255.255.255 ne fonctionne pas
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();
Quand il arrive à la ligne socket.bind(sAddress)
, il jette une exception "ne se lie pas". J'ai également essayé de "sauter" cette ligne de liaison, le socket envoie le paquet mais les autres machines ne reçoivent jamais ce paquet.
Étrangement le code ci-dessous fonctionne très bien, mais envoie uniquement le paquet à 192.168.25.8
, et j'ai besoin d'une émission à la place:
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();
Il y a les autorisations manifeste 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" />
Tout le monde peut Aidez-moi?
vous pouvez essayer cette ip à diffuser: 172.16.0.0 voir https://en.wikipedia.org/wiki/Broadcast_address – nafas
https://stackoverflow.com/a/15913678/2657100 – nandsito
Est-ce que ma réponse vous a aidé? – Kaushal28