I\'m programming a networking program in java , and I want to send some Packets to 255.255.255.255, but it fails , even when I send them to 192.168.1.255, which according to
Rather than connect your DatagramSocket to the broadcast address, just construct the DatagramPacket to target it, i.e.
DatagramPacket dp = new DatagramPacket(byteArray, byteArray.length, InetAddress.getByName("255.255.255.255"), yourPortNumber);
And like magic, you've sent a broadcast. And then to catch it on the other side, just have that end listening on that port:
DatagramSocket dsock = new DatagramSocket(samePortUsedAbove);
DatagramPacket dp = new DatagramPacket(byteArray, byteArray.length);
dsock.receive(dp);
While using broadcasting you need to enable it
socket.setBroadcast(true);
Another thing is that you have to make sure that your router is configured right if the two computers are in two different nets. Broadcasts are usually by default not routed. Further if you have a router having a wirless interface and a wired interface these broadcasts may not work either if broadcasts are not enabled(There may be hardware which forward broadcasts between those two interfaces by default).
192.168.1.255
If I remember correctly, you cannot receive from broadcast-adresses, but only send to them! So on the receiving side, you must be listening on "your" IP specifically.