wysyłanie strumienia multicastowo

wysyłanie strumienia multicastowo
maszynaz
  • Rejestracja: dni
  • Ostatnio: dni
0

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

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
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.

maszynaz
  • Rejestracja: dni
  • Ostatnio: dni
0

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

Madaoo
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 490
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

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
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.

maszynaz
  • Rejestracja: dni
  • Ostatnio: dni
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ć?

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
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.

maszynaz
  • Rejestracja: dni
  • Ostatnio: dni
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ć ;/

Shalom
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Space: the final frontier
  • Postów: 26433
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.

VI
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 212
0

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

Madaoo
  • Rejestracja: dni
  • Ostatnio: dni
  • Postów: 490
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).

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.