# # udp a broadcast/multicast # ## Uwagi: # - UDP moze dzialac w trybie unicast/broadcast/multicast # oraz mozna tego uzywac spod tcludp ... ## Broadcast: # - datagramy wysylane na adres broadcast # powinny docierac do wszystkich klientow w danej sieci # - wystarczy uzyc adresu broadcast # i opcji "-broadcast 1" po stronie nadawcy # (na win "-broadcast 1" nie jest potrzebne) # - sprawdzic czy to dziala w prawdziwej sieci (nie localhost) # odp: tak, dziala!!! ## Multicast: # - odbiorca datagramow musi sie podlaczyc do "grupy multicastowej" (fconfig -mcastadd) # moze byc wielu odbiorcow w tej samej grupie m.c. # na roznych komputerach, i na roznych portach w tym samym kompie # - nadawca wysyla d.g. na adres grupy m.c. oraz do konkretnego portu # datagram dociera do wszystkich podlaczonych do tej grupy m.c. na tym porcie # - "grupa multicastowa" czy to jest wlasciwa nazwa??? # --- Broadcast #load {E:\TEMP\tcl\udp\tcludp.dll} udp load tcludp.so udp # wysyla datagramy # set s1 [udp_open] fconfigure $s1 -remote {127.255.255.255 10000} # w czesci "nr hosta" adresu IP sa same jedynki ... fconfigure $s1 -broadcast 1 # ta opcja jest potrzebna tylko po stronie nadajacego ??? # (w tym przykladzie TAK) fconfigure $s1 puts -nonewline $s1 "qqq www eee111"; flush $s1 # odbiera datagramy # set s2 [udp_open 10000] fconfigure $s2 read $s2 fileevent $s2 readable { _puts [read $s2] } # --- Multicast #load {E:\TEMP\tcl\udp\tcludp.dll} udp load tcludp.so udp # wysyla datagramy # set s1 [udp_open] fconfigure $s1 -remote {224.5.1.21 10000} # d.g. dociera fconfigure $s1 -remote {224.5.1.22 10000} # d.g. dociera fconfigure $s1 -remote {224.5.1.23 10000} # d.g. NIE dociera puts -nonewline $s1 "qqq www eee111"; flush $s1 # odbiera datagramy # set s2 [udp_open 10000] fconfigure $s2 -mcastadd 224.5.1.21 fconfigure $s2 -mcastadd 224.5.1.22 #% 224.5.1.21 224.5.1.22 # odbiorca podlaczyl sie do 2 grup multicastowych fileevent $s2 readable { _puts [read $s2] } fconfigure $s2 -mcastgroups #% 224.5.1.21 224.5.1.22 # tak sie sprawdza do jakich grup m.c. jestesmy podlaczeni