導航:首頁 > 操作系統 > linux添加組播

linux添加組播

發布時間:2024-07-26 09:29:08

A. linux netlink socket 怎樣設置組播

Multicast Programming Sample

The following sample code illustrates how to include multicast functionality to a Windows Sockets application using socket options.

int /* OUT: whatever setsockopt() returns */
join_source_group(int sd, u_int32 grpaddr,
u_int32 srcaddr, u_int32 iaddr)
{
struct ip_mreq_source imr;

imr.imr_multiaddr.s_addr = grpaddr;
imr.imr_sourceaddr.s_addr = srcaddr;
imr.imr_interface.s_addr = iaddr;
return setsockopt(sd, IPPROTO_IP, IP_ADD_SOURCE_MEMBERSHIP, &imr, sizeof(imr));
}

int
leave_source_group(int sd, u_int32 grpaddr,
u_int32 srcaddr, u_int32 iaddr)
{
struct ip_mreq_source imr;

imr.imr_multiaddr.s_addr = grpaddr;
imr.imr_sourceaddr.s_addr = srcaddr;
imr.imr_interface.s_addr = iaddr;
return setsockopt(sd, IPPROTO_IP, IP_DROP_SOURCE_MEMBERSHIP, &imr, sizeof(imr));
}

Send comments about this topic to Microsoft

B. 怎樣用Linux實現組播路由轉發

這就要有PIM(Protocol Independent Multicast,協議無關組播組)協議的支持,就必須在Linux環境下安裝Pimd軟體協議包。 安裝補丁文件 安裝Pimd軟體協議包需要兩個補丁文件:pimkern-freebsd-4.6.patch和netstat-freebsd-4.6.patch。安裝步驟如下: 首先將兩個補丁文件拷貝到/usr/src/目錄下,並執行以下命令:#patch -p2 < netstat-freebsd-4.6.patch #patch -p2 < pimkern-freebsd-4.6.patch 執行以下命令,編譯並安裝netstat:#cd /usr/src/usr.bin/netstat #make #make install 重新編譯內核 執行以下命令,修改multi配置文件:#cd /usr/src/sys/i386/conf/ #cp GENRIC multi #vi multi 在multi配置文件中,加入下列兩行代碼:options MROUTING options PIM 保存並退出vi編輯器。 在當前multi配置文件所在的目錄執行以下命令:#config multi #cd /usr/src/sys/compile/multi/ #make depend #make #make install 至此,新內核編譯完畢。 備份Kernel文件 新內核編譯完畢後,在重新啟動前,要先將根目錄下原有的Kernel文件進行備份。#cd / #mv kernel kernel.old 若提示「operation not permitted」,則需要先執行以下命令:#chflags noschg /kernel 備份Kernel文件後執行以下命令:#cp /usr/src/sys/compile/multi/kernel /kernel 在系統重新啟動後,默認選擇的便是新編譯的內核。 安裝Pimd軟體協議包 Linux下Pimd軟體協議包代碼的起源有兩個地方,一個是日本的KAME項目組,另一個是南加州大學信息科學學院。到這兩個組織的主頁上都可以下載所需要的pimd-current.tar.gz 協議包和上面提到的兩個補丁。 用以下命令解壓縮 pimd-current.tar.gz 軟體包,並安裝:#tar zxf pimd-current.tar.gz #cd pimd-2.1.0-alpha29.16 #make #make install 以上命令執行過程中可能會出現錯誤,需要手工將其完成,拷貝當前目錄下的pimd文件:#cp pimd /usr/local/bin/ #chmod 755 pimd #cp pimd.conf /etc/ 至此,Pimd軟體協議包安裝完畢。還需要打開Linux系統的路由轉發功能,才能實現組播包的轉發,即在配置文件rc.conf中增加以下代碼,重啟後生效。作者:龍宇翔 苑慶國

C. linux下同一個socket可以加入多少個組播地址

沒有限制。Linux是一種自由和開放源代碼的類UNIX操作系統,在該系統使用方法中了解到同一個socket可以加入的組播培陸地址配晌頃數量是沒有限制的,謹攔用戶可以自行加入。

D. linux下配置多網卡組播地址,能正常使用,但重啟後顯示「no such device」,是什麼原因該怎麼解決

因為你用route命令添加的路由表不會保存到一次重啟,雖然你查看得到,你可以寫到啟動腳本里去。
編輯/etc/init.d/network,在未尾加上下面幾行:
# Add non interface-specific static-routes.
if [ -f /etc/sysconfig/static-routes ]; then
grep "^any" /etc/sysconfig/static-routes | while read ignore args ; do
/sbin/route add -$args
done
fi

編輯/etc/sysconfig/static-routes:
any net 224.0.0.101 netmask 255.255.255.255 dev eth0

any net 224.0.0.110 netmask 255.255.255.255 dev eth1
any net 244.0.0.111 netmask 255.255.255.255 dev eth3
any net 244.14.0.112 netmask 255.255.255.255 dev eth2

E. 如何在linux下打開組播功能

IGMP協議運行於主機和與主機直接相連的組播路由器之間,主機通過此協議告訴本地路由器希望加入並接受某個特定組播組的信息,同時路由器通過此協議周期性地查詢區域網內某個已知組的成員是否處於活動狀態(即該網段是否仍有屬於某個組播組的成員),實現所連網路組成員關系的收集與維護。IGMP有三個版本,IGMPv1由RFC1112定義,目前通用的是IGMPv2,由RFC2236定義。IGMPv3目前仍然是一個草案。IGMPv1中定義了基本的組成員查詢和報告過程,IGMPv2在此基礎上添加了組成員快速離開的機制,IGMPv3中增加的主要功能是成員可以指定接收或指定不接收某些組播源的報文。這里著重介紹IGMPv2協議的功能。
IGMPv2通過查詢器選舉機制為所連網段選舉唯一的查詢器。查詢器周期性的發送普遍組查詢消息進行成員關系查詢;主機發送報告消息來應答查詢。當要加入組播組時,主機不必等待查詢消息,主動發送報告消息。當要離開組播組時,主機發送離開組消息;收到離開組消息後,查詢器發送特定組查詢消息來確定是否所有組成員都已離開。
通過上述IGMP機制,在組播路由器里建立起一張表,其中包含路由器的各個埠以及在埠所對應的子網上都有哪些組的成員。當路由器接收到某個組G的數據報文後,只向那些有G的成員的埠上轉發數據報文。至於數據報文在路由器之間如何轉發則由路由協議決定,IGM

閱讀全文

與linux添加組播相關的資料

熱點內容
壓縮包軟體如何安裝 瀏覽:765
我的世界伺服器1122地址 瀏覽:3
蘋果如何與安卓系統連接伺服器 瀏覽:932
農業銀行app學生繳費怎麼切換 瀏覽:468
福建在哪個app上有安康碼 瀏覽:545
用友商貿寶t1登錄找不到加密狗 瀏覽:555
區間測速演算法不正確 瀏覽:331
appstore轉到哪個國家比較好 瀏覽:924
程序員為什麼被公司埋炸彈 瀏覽:941
linuxds18b20驅動 瀏覽:137
集群大數據編譯命令 瀏覽:536
什麼狼人殺app好 瀏覽:303
hadoop壓縮命令 瀏覽:655
croe殼命令 瀏覽:77
抽干文件夾圖片 瀏覽:950
android光感 瀏覽:968
php業務流 瀏覽:971
devc編譯錯了怎麼辦 瀏覽:300
編譯系統都有哪些部分 瀏覽:707
資料庫技術pdf 瀏覽:232