



下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
第C++實現(xiàn)簡易UDP網(wǎng)絡(luò)聊天室SOCKADDR_INaddrSrv;//對于服務(wù)器端,也就是接收端,先進(jìn)行一個綁定,定義一個地址結(jié)構(gòu)體的變量
addrSrv.sin_addr.S_un.S_addr=htonl(INADDR_ANY);//對結(jié)構(gòu)體中的成員進(jìn)行賦值,用htonl轉(zhuǎn)換一下
//將主機數(shù)轉(zhuǎn)換成無符號長整型的網(wǎng)絡(luò)字節(jié)順序。本函數(shù)將一個32位數(shù)從主機字節(jié)順序轉(zhuǎn)換成網(wǎng)絡(luò)字節(jié)順序。
addrSrv.sin_family=AF_INET;//地址族
addrSrv.sin_port=htons(6000);//端口號
//綁定套接字
bind(sockSrv,(SOCKADDR*)addrSrv,sizeof(SOCKADDR));//將本地主機地址和端口進(jìn)行綁定
//套接字,地址結(jié)構(gòu)的指針,地址結(jié)構(gòu)的長度
charrecvBuf[100];//字符數(shù)組,接收信息
charsendBuf[100];//發(fā)送信息
chartempBuf[200];//存放中間數(shù)據(jù)
SOCKADDR_INaddrClient;//在接收的時候,獲取對方的信息,地址結(jié)構(gòu)體的變量
intlen=sizeof(SOCKADDR);//初始化,長度為,地址結(jié)構(gòu)體的長度
while(1)//保證通訊過程能夠持續(xù)進(jìn)行
//等待并接收數(shù)據(jù)
recvfrom(sockSrv,recvBuf,100,0,(SOCKADDR*)addrClient,len);
//套接字,接收數(shù)據(jù)buf,其長度,,地址結(jié)構(gòu)的指針,指向整型的指針主要用來返回所接收的地址長度
if('q'==recvBuf[0])//判斷接收的數(shù)據(jù)第一個字符是q嗎,
sendto(sockSrv,"q",strlen("q")+1,0,(SOCKADDR*)addrClient,len);
//若是,服務(wù)器也發(fā)一個q字符,套接字,q,長度多發(fā)一個字節(jié),,地址用剛剛得到的,最后一個是地址結(jié)構(gòu)的長度,通過len可得
printf("Chatend!\n");
break;
//如果接收的不是q,那么對數(shù)據(jù)進(jìn)行一個格式化,放到tempBuf中,點分十進(jìn)制的ip地址,所接收的數(shù)據(jù)。
sprintf(tempBuf,"%ssay:%s",inet_ntoa(addrClient.sin_addr),recvBuf);
printf("%s\n",tempBuf);//將數(shù)據(jù)打印輸出
//發(fā)送數(shù)據(jù)
printf("pleaseinputdata:\n");
gets(sendBuf);//從標(biāo)準(zhǔn)輸入流中獲取一行數(shù)據(jù),當(dāng)我們輸入一行數(shù)據(jù),以回車,就把數(shù)據(jù)放到指定的內(nèi)存指針中了。
sendto(sockSrv,sendBuf,strlen(sendBuf)+1,0,(SOCKADDR*)addrClient,len);
//套接字,所要發(fā)送的數(shù)據(jù),(這個是數(shù)據(jù)長度,用strlen獲取)多發(fā)一個字節(jié),所發(fā)送的地址,
//關(guān)閉套接字
closesocket(sockSrv);
WSACleanup();//終止對套接字的使用
}
NetClient.cpp
//客戶端
#includeWinsock2.h
#includestdio.h
voidmain(){
//加載套接字庫
WORDwVersionRequested;
WSADATAwsaData;
interr;
wVersionRequested=MAKEWORD(1,1);
err=WSAStartup(wVersionRequested,wsaData);
if(err!=0){
return;
if(LOBYTE(wsaData.wVersion)!=1||HIBYTE(wsaData.wVersion)!=1){
WSACleanup();
return;
//創(chuàng)建套接字
SOCKETsockClient=socket(AF_INET,SOCK_DGRAM,0);
//,類型(數(shù)據(jù)報),自動選擇合適協(xié)議
SOCKADDR_INaddrSrv;
//基于upd的客戶端(發(fā)送端),不需要去綁定,但是需要設(shè)置發(fā)送到對方機器的地址信息
//服務(wù)器端的地址信息,因為在本機上,所以還是127.0.0.1),用inet_addr將點分十進(jìn)制轉(zhuǎn)換成ulang類型
addrSrv.sin_addr.S_un.S_addr=inet_addr("127.0.0.1");
addrSrv.sin_family=AF_INET;
addrSrv.sin_port=htons(6000);//設(shè)置服務(wù)器端程序在哪個端口上等待數(shù)據(jù)
charrecvBuf[100];//接收數(shù)據(jù)
charsendBuf[100];//發(fā)送數(shù)據(jù)
chartempBuf[200];//臨時數(shù)據(jù)的存儲
intlen=sizeof(SOCKADDR);//接收所返回的地址結(jié)構(gòu)的長度
while(1)
//發(fā)送數(shù)據(jù)
printf("Pleaseinputdata:\n");
gets(sendBuf);
sendto(sockClient,sendBuf,strlen(sendBuf)+1,0,(SOCKADDR*)addrSrv,len);
//等待并接收數(shù)據(jù)
recvfrom(sockClient,recvBuf,100,0,(SOCKADDR*)addrSrv,len);
if('q'==recvBuf[0])
sendto(sockClient,"q",strlen("q")+1,0,(SOCKADDR*)addrSrv,len);
printf("Chatend!\n");
break;
sprintf(tempBuf,"%ssay:%s",inet_ntoa(addrSrv.sin_addr),recvBuf);
//服務(wù)器端ip地址信息(格式化),接收的數(shù)據(jù)
pri
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 申請企業(yè)并購協(xié)議書
- 父母投靠子女協(xié)議書
- 私人醫(yī)院捐贈協(xié)議書
- 疫情放假安全協(xié)議書
- 直播大棚轉(zhuǎn)讓協(xié)議書
- 離婚老年婦女協(xié)議書
- 離婚財產(chǎn)過戶協(xié)議書
- 空調(diào)維修外包協(xié)議書
- 電費支付擔(dān)保協(xié)議書
- 物業(yè)水電代收協(xié)議書
- 服裝零售售后服務(wù)與退換貨流程
- 肝衰竭診治指南(2024年版)解讀
- 2025-2030年中國預(yù)付卡行業(yè)運行現(xiàn)狀及發(fā)展前景預(yù)測報告
- 【物理】跨學(xué)科實踐:制作簡易桿秤 2024-2025學(xué)年物理人教版八年級下冊
- 馬鈴薯種薯繁育示范基地建設(shè)項目可行性研究報告
- 不良事件分級及上報流程
- 申請做女朋友的申請書
- 【語文】第18課《井岡翠竹》課件 2024-2025學(xué)年統(tǒng)編版語文七年級下冊
- 家電店慶活動方案范文
- 《特種設(shè)備無損檢測機構(gòu)檢測能力確認(rèn) 工作導(dǎo)則》
- 醫(yī)療糾紛鑒定委員會工作制度及職責(zé)
評論
0/150
提交評論