Buonasera,
Ho scritto un semplice programma in Java, che prevede un Server che invia dei pacchetti (vuoti) ad un gruppo, con IP 239.0.0.1 e porta 6789.
Server
codice:
DatagramSocket socket = new DatagramSocket();
byte[] b = new byte[1024];
DatagramPacket dgram;
dgram = new DatagramPacket(b, b.length,
InetAddress.getByName("239.0.0.1"), 6789);
System.err.println("Sending " + b.length + " bytes to " +
dgram.getAddress() + ':' + dgram.getPort());
while(true)
{
System.err.print(".");
socket.send(dgram);
Thread.sleep(1000);
}
Client
codice:
byte[] b = new byte[1024];
DatagramPacket dgram = new DatagramPacket(b, b.length);
MulticastSocket socket =
new MulticastSocket(6789);
socket.joinGroup(InetAddress.getByName("239.0.0.1"));
while(true)
{
socket.receive(dgram);
System.err.println("Received " + dgram.getLength() +
" bytes from " + dgram.getAddress());
dgram.setLength(b.length);
}
In locale i due programmi funzionano tranquillamente. Il problema viene quando provo a farli comunicare in rete locale. Al client, non arriva nessun pacchetto, e rimane quindi in attesa all'infinito. Ho provato a cambiare porte e IP, e a disattivare il firewall, ma il problema persiste.
Qualche consiglio?