Discussione: Multicast,broadcast
View Single Post
Old 25-01-2005, 19:05   #3
cionci
Senior Member
 
L'Avatar di cionci
 
Iscritto dal: Apr 2000
Città: Vicino a Montecatini(Pistoia) Moto:Kawasaki Ninja ZX-9R Scudetti: 29
Messaggi: 53971
L'argomento è molto vasto...

Prima di tutto la trasmissione multicast avviene solo tramite UDP...slcuni protocolli possono utilizzare connessioni TCP, ma non in multicast...

Ci sono molti protocolli già assodati...come PIM, RTP/RTCP, PGM, PGMCC...sinceramente non ho mai realizzato niente di questo tipo...ma se ti devo dare un indizio: la primitiva setsockopt serve per aggiungersi/togliersi da un gruppo multicast...

Ogni gruppo multicast è identificato da un indirizzo multicast i cui primi 4 bit sono 1110... In realtà un indirizzo mutlicast non è formato dal solo indirizzo del gruppo, ma nei protocolli più moderni è l'unione di <IP sorgente, IP multicast>....


struct ip_mreq ipm;

ipm.imr_multiaddr <--- indirizzo multicast
ipm.imr_interface <--- interfaccia sulla quale si lavora (anche INADDR_ANY)

setsockopt(s, IPPROTO_IP, IP_ADD_MEMBERSHIP, &ipm, sizeof(ipm));


oppure per togliersi:

setsockopt(s, IPPROTO_IP, IP_DROP_MEMBERSHIP, &ipm, sizeof(ipm));

Dai un'occhiata qui: http://howtos.linux.com/howtos/Multi...WTO.shtml#toc7
cionci è offline   Rispondi citando il messaggio o parte di esso