多播的程式設計使用
setsockopt()
函式和getsockopt()
函式來實現,組播的選項是
ip層的,其選項值和含義參見
11.5
所示。表
11.5
多播相關的選項
getsockopt()/setsockopt()
的選項 含
義 ip_multicast_ttl
設定多播組資料的
ttl值
ip_add_membership
在指定介面上加入組播組
ip_drop_membership
退出組播組
ip_multicast_if
獲取預設介面或設定介面
ip_multicast_loop
禁止組播資料回送
1.選項
ip_multicase_ttl 選項
ip_multicast_ttl
允許設定超時
ttl,範圍為0~
255之間的任何值,例如:
unsigned char ttl=255;
setsockopt(s,ipproto_ip,ip_multicast_ttl,&ttl,sizeof(ttl));
2.選項
ip_multicast_if 選項
ip_multicast_if
用於設定組播的預設預設網路介面,會從給定的網路介面傳送,另乙個網路介面會忽略此資料。例如:
struct in_addr addr;
setsockopt(s,ipproto_ip,ip_multicast_if,&addr,sizeof(addr)); 引數
addr
是希望多播輸出介面的
ip位址,使用
inaddr_any
位址回送到預設介面。
預設情況下,當本機傳送組播資料到某個網路介面時,在
ip層,資料會回送到本地的回環介面,選項
ip_multicast_loop
用於控制資料是否回送到本地的回環介面。例如:
unsigned char loop;
setsockopt(s,ipproto_ip,ip_multicast_loop,&loop,sizeof(loop)); 引數
loop
設定為0
禁止回送,設定為
1允許回送。
3.選項
ip_add_membership
和ip_drop_membership
加入或者退出乙個組播組,通過選項
ip_add_membership
和ip_drop_member- ship
,對乙個結構
struct ip_mreq
型別的變數進行控制,
struct ip_mreq
原型如下:
struct ip_mreq ;
選項ip_add_membership
用於加入某個廣播組,之後就可以向這個廣播組傳送資料或者從廣播組接收資料。此選項的值為
mreq
結構,成員
imn_multiaddr
是需要加入的廣播組
ip位址,成員
imr_inte***ce
是本機需要加入廣播組的網路介面
ip位址。例如:
struct ip_mreq mreq;
setsockopt(s,ipproto_ip,ip_add_membership,&mreq,sizeof(mreq)); 使用
ip_add_membership
選項每次只能加入乙個網路介面的
ip位址到多播組,但並不是乙個多播組僅允許乙個主機
ip位址加入,可以多次呼叫
ip_add_membership
選項來實現多個
ip位址加入同乙個廣播組,或者同乙個
ip位址加入多個廣播組。當
imr_ inte***ce
為inaddr_any
時,選擇的是預設組播介面。
4.選項
ip_drop_membership 選項
ip_drop_membership
用於從乙個廣播組中退出。例如:
struct ip_mreq mreq;
setsockopt(s,ipprotp_ip,ip_drop_membership,&mreq,sizeof(sreq)); 其中
mreq
包含了在
ip_add_membership
中相同的值。
5.多播程式設計的框架
要進行多播的程式設計,需要遵從一定的程式設計框架,其基本順序如圖
11.6
所示。多播程式框架主要包含套接字初始化、設定多播超時時間、加入多播組、傳送資料、接收資料以及從多播組中離開幾個方面。其步驟如下:(1
)建立乙個
socket。(
2)然後設定多播的引數,例如超時時間
ttl、本地回環許可
loop等。(
3)加入多播組。(4
)傳送和接收資料。(5
)從多播組離開。
圖11.6多播的程式設計流程
Linux C C 程式設計 Udp組播(多播)
ip組播通訊必須依賴於ip多播位址,在ipv4中它是乙個d類ip位址,範圍從224.0.0.0到239.255.255.255,並被劃分為區域性鏈結多播位址 預留多播位址和管理許可權多播位址三類 預留多播位址為 224.0.1.0 238.255.255.255,可用於全球範圍 如internet ...
網路程式設計多播 Multicast
ip多播 也稱多址廣播或組播 技術,是一種允許一台或多台主機 多播源 傳送單一資料報到多台主機 一次的,同時的 的tcp ip網路技術。通俗點講,多播也稱組播,大概可以理解為分組廣播的意思,是介於單播和廣播之間的一種通訊機制,使用多播方式,可以實現對區域網內一組特定的主機進行通訊,對區域網節點分組,...
socket程式設計(3)廣播 多播
廣播 廣播是指在乙個區域網中向所有的網上節點傳送資訊。這是udp連線的一種 廣播有乙個廣播組,即只有乙個廣播組內的節點才能收到發往這個廣播組的資訊。什麼決定了乙個廣播組呢,就是埠號,區域網內乙個節點,如果設定了廣播屬性並監聽了埠號a後,那麼他就加入了a組廣播,這個區域網內所有發往廣播埠a的資訊他都收...