wysyłanie strumienia multicastowo

0

Jak wysyłać strumień multicastowo pod kilka wybranych adresów za pomocą socketa?

1

Ty w ogóle rozumiesz jak działa multicast? Mam wątpliwości. Multicast to jest komunikacja
jedno/wiele źródeł -> wielu odbiorców
Ale odbiorcy są zdefiniowani przez ADRES grupy. JEDEN adres grupy dla jasności. Klienci robią join() na adresie, routery zestawiają sobie odpowiednio ścieżkę (zależnie od protokołu) a potem jak wysyłasz coś na ten adres grupy to wiadomość automatycznie leci do każdego kto się joinował na ten adres.

0

A jak zrobić multicasta na jednym sockecie żeby odbierało i wysyłało strumienie?

1

Aby móc używać multicastu musisz mieć protokół routingu multicastowego np PIM-dense mode(na linuxach masz pimd), na routerach możesz właczyć tą opcje, bez tego nie będziesz mógł zrobić joina. Więcej na temat : http://itpedia.pl/index.php/IP_multicast

1

@Madaoo warto wspomnieć że z zasady routery nie przekazują multicastów poza sieć lokalną ;) Poza tym akurat dense-mode to raczej najsłabsza opcja chyba że odbiorcami są prawie wszystkie urządzenia w sieci.

0

A da się na jednym sockecie odbierać i wysyłać multicastowo?
Bo jeżeli dam na interfejs lokalny INADDR_ANY i na adres grupy moje lokalne ip to działa pomiędzy wirtualną maszyną a moim hostem. Ale jak w komputerze są interfejsy IP6 to już się program wykrzacza. Jak to rozwiązać?

0

@maszynaz czy ty w ogóle masz jakiekolwiek pojęcie o tym co to jest socket? Masz mieć dwa sockety, jeden do słuchania i jeden do pisania.
Adres grupy NIE MOŻE BYĆ adresem lokalnym. Istnieje JASNO ZDEFINIOWANA pula adresów grupowych i tych musisz używać. Ale oczywiście żeby o tym wiedzieć musiałbyś wreszcie zacząć CZYTAĆ zamiast wymyślać coś samemu.

0

Dobra, a teraz mam problem z ustawieniem adresu grupowego. Jak to zrobić?
Sprawa wygląda tak, że mam 3 pola adresowe: grupy multicastowej, lokalnego interfejsu i pole adresowe do które wysyłam strumień. I teraz jak to poustawiać?
Jako lokalny interfejs ustawiłem własne IP w LAN-ie czyli 192.168.x.x. Pozostałe dwa nie wiem jak ustawić ;/

0

Przepraszam ale gdzie coś takiego masz do ustawienia? Przecież multicast to jest zwykłe UDP więc potrzebujesz TYLKO adres odbiorcy zdefiniować i interfejs lokalny na którym ma działać socket. Adres na który wysyłasz strumień to jest adres grupy multicastowej.

0

Może skorzystaj z adresu rozgłoszeniowego jeżeli zamierzasz nadawać tylko w obrębie jednej sieci lokalnej?

0

@maszynaz na początku zainstaluj linuxa, zainstaluj usługe do routingu multicastowego(pimd), do tego jakieś srodowiko na linuxie do C# lub javy, gdzie będziesz mógł, potestować na jednym komputerze, þóźniej przejsdz do różnych sieci. Address do multicastu np: 226.0.0.10 gniazda ustaw na: 12345(żródłowy obojętnie u klienta byle docelowy do nasłuchiwanego był 12345).

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