秋霞电影网午夜鲁丝片无码,真人h视频免费观看视频,囯产av无码片毛片一级,免费夜色私人影院在线观看,亚洲美女综合香蕉片,亚洲aⅴ天堂av在线电影猫咪,日韩三级片网址入口

歡迎來到裝配圖網(wǎng)! | 幫助中心 裝配圖網(wǎng)zhuangpeitu.com!
裝配圖網(wǎng)
ImageVerifierCode 換一換
首頁 裝配圖網(wǎng) > 資源分類 > PPT文檔下載  

第10章 廣播與多播編程 (2)

  • 資源ID:253388139       資源大?。?span id="mzebxcnn0" class="font-tahoma">166.01KB        全文頁數(shù):20頁
  • 資源格式: PPT        下載積分:16積分
快捷下載 游客一鍵下載
會(huì)員登錄下載
微信登錄下載
三方登錄下載: 支付寶登錄   QQ登錄   微博登錄  
二維碼
微信掃一掃登錄
下載資源需要16積分
郵箱/手機(jī):
溫馨提示:
用戶名和密碼都是您填寫的郵箱或者手機(jī)號(hào),方便查詢和重復(fù)下載(系統(tǒng)自動(dòng)生成)
支付方式: 微信支付   
驗(yàn)證碼:   換一換

 
賬號(hào):
密碼:
驗(yàn)證碼:   換一換
  忘記密碼?
    
友情提示
2、PDF文件下載后,可能會(huì)被瀏覽器默認(rèn)打開,此種情況可以點(diǎn)擊瀏覽器菜單,保存網(wǎng)頁到桌面,就可以正常下載了。
3、本站不支持迅雷下載,請(qǐng)使用電腦自帶的IE瀏覽器,或者360瀏覽器、谷歌瀏覽器下載即可。
4、本站資源下載后的文檔和圖紙-無水印,預(yù)覽文檔經(jīng)過壓縮,下載后原文更清晰。
5、試題試卷類文檔,如果標(biāo)題沒有明確說明有答案則都視為沒有答案,請(qǐng)知曉。

第10章 廣播與多播編程 (2)

單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級(jí),第三級(jí),第四級(jí),第五級(jí),*,第10章,廣播與多播編程,廣播,一個(gè),IP,地址由網(wǎng)絡(luò)號(hào)和主機(jī)號(hào)組成。所有主機(jī)號(hào)部分為全,1,的,IP,地址是廣播地址。,發(fā)送應(yīng)用進(jìn)程,UDP,IPv4,數(shù)據(jù)鏈路,UDP,IPv4,數(shù)據(jù)鏈路,數(shù)據(jù)鏈路,IPv4,UDP,接收應(yīng)用進(jìn)程,以太網(wǎng),頭部,IPv4,頭部,UDP,頭部,UDP,數(shù)據(jù),子網(wǎng)128.7.6,目的以太網(wǎng),=,ff:ff:ff:ff:ff:ff,幀類型,=0800,目的,IP=128.7.6.255,協(xié)議,=UDP,目的端口,=520,Sendto,目的,IP=128.7.6.255,目的端口,=520,丟棄,協(xié)議,=UDP,幀類型,0800,128.7.6.99=,單播,128.7.6.255=,廣播,128.7.6.5=,單播,128.7.6.255=,廣播,協(xié)議,=UDP,端口,=520,廣播的實(shí)現(xiàn),應(yīng)用程序只能通過,UDP,方式發(fā)送廣播。,一般情況下,如果調(diào)用,sendto,,只能向非廣播地址發(fā)送數(shù)據(jù)報(bào)。如果要發(fā)送廣播數(shù)據(jù)報(bào),必須告訴內(nèi)核,可以通過設(shè)置,SO_BROADCAST,套接口選項(xiàng)來做到這一點(diǎn)。,int,on=1;,setsockopt(sockfd,SOL_SOCKET,SO_BROADCAST,&on,sizeof(int,);,廣播實(shí)例,服務(wù)端為,tserv.c,,運(yùn)行時(shí)需指定廣播地址和端口號(hào),運(yùn)行后每,3,秒發(fā)送一次廣播,將本機(jī)時(shí)間通知本子網(wǎng)內(nèi)所有主機(jī)。,服務(wù)器端程序,tserv.c,#include,#include,#include,#include,#define BUFLEN 255,void,getcurtime(char,*,curtime,),time_t,tm;,time(&tm,);,snprintf(curtime,BUFLEN,%sn,ctime(&tm,);,int,main(int,argc,char,*,argv,),struct,sockaddr_in,peeraddr,;,int,sockfd,on,=1;,int,num,i,;,char msgBUFLEN+1;,if(argc,!=3),printf(usage:%s,n,argv0);,exit(0);,sockfd,=socket(AF_INET,SOCK_DGRAM,0);,if(sockfd,0),fprintf(stderr,socket,creating error in,,);,exit(1);,setsockopt(sockfd,SOL_SOCKET,SO_BROADCAST,&on,sizeof(int,);,memset(&peeraddr,0,sizeof(struct,sockaddr_in,);,peeraddr.sin_family,=AF_INET;,if(inet_pton(AF_INET,argv1,&peeraddr.sin_addr)=0),printf(Wrong,dest,IP addressn);,exit(0);,peeraddr.sin_port,=htons(atoi(argv2);,for(;),getcurtime(msg,);,int,a;,a=sendto(sockfd,msg,strlen(msg),0,(struct,sockaddr,*)&,peeraddr,sizeof(struct,sockaddr_in,);,printf(%d,a,);,fflush(stdout,);,sleep(3);,客戶端程序,tcli.c,(,只需偵聽某一固定端口的數(shù)據(jù)報(bào),接收一個(gè)數(shù)據(jù)報(bào)就返回。,),#include,#include,#include,#include,#define BUFLEN 255,int,main(int,argc,char,*,argv,),struct,sockaddr_in,localaddr,;,int,sockfd,n,;,char msgBUFLEN+1;,if(argc,!=2),printf(usage:%s,n,argv0);,exit(0);,sockfd,=socket(AF_INET,SOCK_DGRAM,0);,if(sockfd,0),fprintf(stderr,socket,creating error in,,);,exit(1);,memset(&localaddr,0,sizeof(struct,sockaddr_in,);,localaddr.sin_port,=htons(atoi(argv1);,localaddr.sin_addr.s_addr,=,htonl(INADDR_ANY,);,int,opt=SO_REUSEADDR;,setsockopt(sockfd,SOL_SOCKET,SO_REUSEADDR,&opt,sizeof(opt,);,if(bind(sockfd,(struct,sockaddr,*)&,localaddr,sizeof(struct,sockaddr_in,)0),fprintf(stderr,bind,error in,,);,exit(2);,n=,read(sockfd,msg,BUFLEN,);,if(n,=-1),fprintf(stderr,read,error in,,);,exit(3);,else,msgn,=0;,printf(%s,msg,);,程序運(yùn)行結(jié)果,如果在服務(wù)器端輸入,./,serv,222.18.113.171 1234,則兩個(gè)客戶不會(huì)同時(shí)收到數(shù)據(jù)報(bào)。,多播,多播是,通過,D,類地址進(jìn)行的,,D,類地址的前,4,位為,1110,,后面,28,位為群播的組標(biāo)識(shí)。,地址范圍,224.0.0.0,到,239.255.255.255,特殊的,IPv4,多播地址:,224.0.0.0,保留,224.0.0.1,本子網(wǎng)上所有主機(jī),224.0.0.2,本子網(wǎng)上所有網(wǎng)關(guān),224.0.1.1 NTP(,網(wǎng)絡(luò)時(shí)間協(xié)議,),組,多播的,原理,當(dāng)一個(gè)多播分組到達(dá)一個(gè)以太網(wǎng)時(shí),形成幀后它的,MAC,地址為,01:00:5e:xx:xx:xx,,其后,23,位由多播組標(biāo)識(shí)的后,23,位映射而成。例如目的地址為,224.0.1.1,的多播分組,在以太網(wǎng)上幀的,MAC,地址就為,01:00:5e:00:01:01,,如下圖示。,11100000,00000000,00000001,00000001,00000001,00000000,01011110,00000000,00000001,00000001,IP,地址,MAC,地址,由于多播,IP,地址中組標(biāo)識(shí)有,28,位,而映射到,MAC,地址的只有,23,位,還差,5,位,所以有,32,個(gè)組將映射成相同的,MAC,地址,例如,224.0.0.1,,,225.0.1.1,239.128.1.1,都映射到,MAC,地址,01:00:5e:00:01:01,。因此要由,IP,層來檢驗(yàn)到達(dá)的多播分組是否是自已所加入的多播組。如果不是,則拋棄該分組。,應(yīng)用程序,UDP,IP,層,132.0.0.100,數(shù)據(jù)鏈路層,52:37:4a:6d:7f:5e,應(yīng)用程序,UDP,IP,層,132.0.0.129,應(yīng)用程序,UDP,IP,層,132.0.0.168,數(shù)據(jù)鏈路層,52:23:4e:6f:2c:35,數(shù)據(jù)鏈路層,00:2e:2c:5f:ae:3f,發(fā)送數(shù)據(jù)報(bào),IP:224.0.1.1,端口,1234,通過,ARP,解析,224.0.1.1,對(duì)應(yīng),01:00:5e:00:01:01,接收數(shù)據(jù)報(bào),端口,1234,應(yīng)用程序指定,132.0.0.129,加入多播組,224.0.1.1,IP,層指示接收,MAC,地址為,01:00:5e:00:01:01,的幀,加入,225.0.1.1,丟棄,多播數(shù)據(jù)報(bào)在子網(wǎng)中的發(fā)送接收,多播,的,實(shí)現(xiàn),應(yīng)用程序只需向多播組地址發(fā)送數(shù)據(jù)報(bào),接收應(yīng)用程序加入這個(gè)多播組。在指定端口上進(jìn)行偵聽。,加入多播組的方法是設(shè)置套接口選項(xiàng),IP_ADD_MEMBERSHIP.,它要用要如下結(jié)構(gòu):,Struct,ip_mreq,struct,in_addr,imr_multiaddr,;/*IPv4,的,D,類多播地址*,/,Struct,in_addr,imr_interface,;/*,本地接口,IPv4,地址*,/,;,例:,setsockopt(sockfd,IPPROTO_IP,IP_ADD_MEMBERSHIP,&mcaddr,sizeof(struct,ip_mreq,),多播的實(shí)現(xiàn),服務(wù)器端程序沒有什么改變,只要將設(shè)置,socket,選項(xiàng),SO_BROADCAST,的那行去掉就可以了。,客戶程序源碼如下頁:,源程序,mtcli.c,#include,#include,#include,#include,#define BUFLEN 255,int,main(int,argc,char,*,argv,),struct,sockaddr_in,localaddr,;,int,sockfd,n,;,struct,ip_mreq,mcaddr,;,char msgBUFLEN+1;,if(argc,3),printf(usage:%s,n,argv0);,exit(0);,sockfd,=socket(AF_INET,SOCK_DGRAM,0);,if(sockfd,0),fprintf(stderr,socket,creating error in,,);,exit(1);,memset(&localaddr,0,sizeof(struct,sockaddr_in,);,localaddr.sin_port,=htons(atoi(argv2);,localaddr.sin_addr.s_addr,=,htonl(INADDR_ANY,);,if(inet_pton(AF_INET,222.18.113.171,&,mcaddr.imr_interface,)=0),perror(failure,);,exit(0);,if(inet_pton(AF_INET,argv1,&,mcaddr.imr_multiaddr,)=0),printf(Wrong,multicast IP addressn);,exit(0);,printf(ip:%s,inet_ntoa(mcaddr.imr_multiaddr,);,fflush(stdout,);,if(,setsockopt(sockfd,IPPROTO_IP,IP_ADD_MEMBERSHIP,&mcaddr,sizeof(struct,ip_mreq,),0),perror(setsockopt,error in,mtcli.c,join,multicast failedn);,exit(4);,if(bind(sockfd,(struct,sockaddr,*)&,localaddr,sizeof(struct,sockaddr_in,)0),fprintf(stderr,bind,error in,,);,exit(2);,n=,read(sockfd,msg,BUFLEN,);,if(n,=-1),fprintf(stderr,read,error in,,);,exit(3);,else,msgn,=0;,printf(%s,msg,);,程序運(yùn)行結(jié)果,向多播組,224.0.4.5,發(fā)送數(shù)據(jù)報(bào),加入,224.0.4.5,并在,1234,端口偵聽,思考:客戶收到數(shù)據(jù)報(bào)的源地址是多少?,

注意事項(xiàng)

本文(第10章 廣播與多播編程 (2))為本站會(huì)員(hs****5)主動(dòng)上傳,裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。 若此文所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng)(點(diǎn)擊聯(lián)系客服),我們立即給予刪除!

溫馨提示:如果因?yàn)榫W(wǎng)速或其他原因下載失敗請(qǐng)重新下載,重復(fù)下載不扣分。




關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  sobing.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!