Witam.
Mam problem. Nie mogę odebrać pakietów udp na drugim komputerze w sieci. Pakiety docierają (widze na wiresharku) jednak java ich nie wyłapuje. Dodam że chodzi tutaj o multicast.
Na jednym komputerze aplikacja serwer i klient działają bez problemów, nawet wraz z maszyną wirtualną.
Poniżej zamieściłem fragmentu kodu oraz printscreena z łaściowściami odbieranych pakietów (są to pakiety na drugim komputerze, na którym aplikacja klienta niestety nie działa poprawnie) Jak widać na printscreenie transmisja jest raczej ok, jako że widać mój rds na samym dole ekranu jako plain text w zrzucie zawartości datagramu. Zgadza się również adres (grupa w joinGroup) i port i ttl. W takim razie dlaczego klient nie odbiera ????
//fragment serwera
socket =new MulticastSocket(null);
socket.setReuseAddress(true);
socket.setTimeToLive(port);
socket.bind(new InetSocketAddress(port));
public void Send(byte[] buffor) throws IOException {
DatagramPacket p = new DatagramPacket(buffor, buffor.length, group, port);
socket.send(p);
}
//framgent clienta
this.socket=new MulticastSocket(port);
this.socket.joinGroup(addr);
this.socket.setTimeToLive(200);
public void Receive(byte[] buffor) throws IOException
{
DatagramPacket p=new DatagramPacket(buffor,buffor.length);
socket.receive(p);
System.out.println("Odebralem");
}
// konstruktory
Properties props = System.getProperties();
props.setProperty("java.net.preferIPv4Stack","true");
System.setProperties(props);
JCastServer server=new JCastServer(InetAddress.getByName("230.0.0.1"),5000);
JCastClient client=new JCastClient(InetAddress.getByName("230.0.0.1"),5100);
server.SendFile(new File("test.mp3"));
server.setRDS("Astronomia!!!!");
Link do obrazka: http://img190.imageshack.us/img190/598/qttempxg8056.png