Multicast - java nie odbiera datagramów

0

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!!!!");

user image
Link do obrazka: http://img190.imageshack.us/img190/598/qttempxg8056.png

1

A upewnij się czy faktycznie w tej sieci działa ci multicast -> uruchom sobie np. progra TightReceiver i TightProjector. Poza tym puść wiresharka w trybie nie-promiscous i zobacz czy dostaje faktycznie te pakiety. Oprócz tego co to za router? Jakiś konfigurowalny? Możesz zrobic na nim jakieś show ip igmp groups? Albo show ip mrouting?

0

Na routerze tight nie działał, więc zapiołem 2 kompy po wifi na adhoc - też nie działa! dlaczego ?? MSDN nie mówi nic o blokowaniu multicastów :(
dodatkowo, pakiety okazuje się dochodzą w obydwu przypadkach. Router btw ma tam opcje włączenia multicastu (ale tylko igmpv2) która jest włączona.
Pierwszy screen to jest transmisja przez router mojego programu. Drugi screen to transmisja Tight`ów na adhoc - podkreślam jednak, że i to też nie działało (tight receiver ciągle czeka na połączenie - porty niby te same). Co zrobić, żeby to zadziałało he?

qttemphp6352.th.png
qttempuh6352.th.png

edit: masz racje - bez nasłuchu (głupi ooo ja głupi głupi!) nie wygląda, żeby pakiety docierały do komputera ;/
kolejny edit - nie no jednak docierają!
qttempuh3680.th.png

0

No jeśli tighty nie działają to chyba jednak nie działa tam ten multicast, cudów nie ma :P
Dla sieci ad-hoc to się chyba nie liczy, bo nie wiem czy w takim przypadku twoja karta sieciowa działa jak switch czy jak hub.

Ogólnie mam wątpliwości czy jakieś zabawkowe routery pozwalają na zabawę multicastem :P A do tego gdzieś słyszałem ze windows też coś z multicastami blokuje ;]

0

Generalnie tak jak mówisz, cudów nie ma - więc skoro wireshark pokazuje, że te pakiety docierają do kompa to docierają i już. Sam jestem zdecydowanie za przychyleniem się do tego, że to sprawka windy ;/ Właśnie napisałem maila do kolegi który pracuje w centrum informatycznym na mojej uczelni. Może coś pomoże i zorganizuje mi sale luuuub dostęp do routera cisco (ten to już chyba nie będzie zabawkowy :))

0

To zależy jaki router :P Starsze modele mogą nie obsługiwać multicastów. http://www.cisco.com/en/US/prod/collateral/iosswrel/ps6537/ps6552/prod_white_paper0900aecd80595d81.html tu masz info o tym w jakich wersja IOS masz multicastowe MIBy.

1 użytkowników online, w tym zalogowanych: 0, gości: 1