下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
第C語(yǔ)言實(shí)現(xiàn)UDP通信UDP通信
UDP是一種無連接的盡最大努力交付的不可靠連接,通信之前無需先建立連接,自然而然,通信之后也就無需再釋放連接。
通信的套接字
UDP所采用的通信接口與前面講過的TCP通信接口相同,只是沒有建立連接這一步。
socket()用來創(chuàng)建套接字,使用udp協(xié)議時(shí),選擇數(shù)據(jù)報(bào)服務(wù)SOCK_DGRAM。sendto()用來發(fā)送數(shù)據(jù),由于UDP是無連接的,每次發(fā)送數(shù)據(jù)都需要指定對(duì)端的地址(IP和端口)。recvfrom()接收數(shù)據(jù),每次都需要傳給該方法一個(gè)地址結(jié)構(gòu)來存放發(fā)送端的地址。
recvfrom()可以接收所有客戶端發(fā)送給當(dāng)前應(yīng)用程序的數(shù)據(jù),并不是只能接收某一個(gè)客戶端的數(shù)據(jù)
客戶端
#includestdio.h
#includestdlib.h
#includeunistd.h
#includestring.h
#includeassert.h
#includesys/socket.h
#includenetinet/in.h
#includearpa/inet.h
intmain()
intsockfd=socket(AF_INET,SOCK_DGRAM,0);
assert(sockfd!=-1);
structsockaddr_insaddr;
memset(saddr,0,sizeof(saddr));
saddr.sin_family=AF_INET;
saddr.sin_port=htons(6000);
saddr.sin_addr.s_addr=inet_addr("127.0.0.1");
while(1)
{
charbuff[128]={0};
printf("input:\n");
fgets(buff,128,stdin);
if(strncmp(buff,"end",3)==0)
{
break;
}
sendto(sockfd,buff,strlen(buff),0,(structckaddr*)saddr,sizeof(saddr));
memset(buff,0,128);
intlen=sizeof(saddr);
recvfrom(sockfd,buff,127,0,(structsockaddr*)saddr,len);
printf("buff=%s\n",buff);
}
close(sockfd);
}
服務(wù)器端
#includestdio.h
#includestdlib.h
#includeunistd.h
#includestring.h
#includeassert.h
#includesys/socket.h
#includenetinet/in.h
#includearpa/inet.h
intmain()
intsockfd=socket(AF_INET,SOCK_DGRAM,0);
assert(sockfd!=-1);
structsockaddr_insaddr,caddr;
memset(saddr,0,sizeof(saddr));
saddr.sin_family=AF_INET;
saddr.sin_port=htons(6000);
saddr.sin_addr.s_addr=inet_addr("127.0.0.1");
intres=bind(sockfd,(structsockaddr*)saddr,sizeof(saddr));
assert(res!=-1);
while(1)
{
intlen=sizeof(caddr);
charbuff[128]={0};
recvfrom(sockfd,buff,127,0,(structsockaddr*)caddr,len);
printf("ip:%s,port:%d,buff=%s\n",inet_ntoa(caddr.sin_addr),ntohs(caddr.sin_port),buff);
sendto(sockfd,"ok",2,0,(stru
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 中學(xué)學(xué)生心理輔導(dǎo)制度
- 養(yǎng)老院工作人員培訓(xùn)考核制度
- 公共交通車輛維修質(zhì)量控制制度
- 2026年數(shù)學(xué)基礎(chǔ)試題集初中代數(shù)應(yīng)用題
- 2026年大學(xué)化學(xué)實(shí)驗(yàn)教學(xué)知識(shí)競(jìng)賽試題庫(kù)
- 2026年生物科技與健康知識(shí)題庫(kù)
- 2026年工程招投標(biāo)代理合同(合規(guī)·中標(biāo)版)
- 2026年?yáng)|北大米購(gòu)銷合同
- 護(hù)理帶教中的信息技術(shù)應(yīng)用
- 2025年紅河衛(wèi)生職業(yè)學(xué)院?jiǎn)握新殬I(yè)技能考試模擬測(cè)試卷帶答案解析
- 2026年及未來5年市場(chǎng)數(shù)據(jù)中國(guó)集裝箱物流行業(yè)市場(chǎng)發(fā)展數(shù)據(jù)監(jiān)測(cè)及投資戰(zhàn)略規(guī)劃報(bào)告
- 中小學(xué)人工智能教育三年發(fā)展規(guī)劃(2026-2028)7500字完整方案目標(biāo)務(wù)實(shí)真能落地
- 七年級(jí)地理下冊(cè)(人教版)東半球其他的國(guó)家和地區(qū)-歐洲西部自然環(huán)境教學(xué)設(shè)計(jì)
- 口腔現(xiàn)場(chǎng)義診培訓(xùn)
- 學(xué)校中層管理崗位職責(zé)及分工明細(xì)(2026年版)
- 江蘇省南京市六校聯(lián)合體2026屆高一數(shù)學(xué)第一學(xué)期期末監(jiān)測(cè)試題含解析
- 就業(yè)部門內(nèi)控制度
- 2026屆江蘇省徐州市侯集高級(jí)中學(xué)高一上數(shù)學(xué)期末復(fù)習(xí)檢測(cè)試題含解析
- 飛行固模課件
- 2026中國(guó)電信四川公司校園招聘?jìng)淇碱}庫(kù)附答案
- 住院患者安全告知
評(píng)論
0/150
提交評(píng)論