c++ socket学习(1.2)
生活随笔
收集整理的這篇文章主要介紹了
c++ socket学习(1.2)
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
本文學(xué)習(xí)相關(guān)資料:
C/C++ socket編程教程
環(huán)境:vs2015
源碼:本文代碼
windows 如何創(chuàng)建客戶端與服務(wù)端通信?
UDP:
這次就沒(méi)什么客戶端服務(wù)端好說(shuō)了,UDP是沒(méi)有無(wú)連接的
所以改叫接收端和發(fā)送端吧
接收端
和TCP不同的是,在創(chuàng)建套接字的時(shí)候填寫的參數(shù)不同
/* SOCK_DGRAM:表示使用無(wú)連接的傳輸方式 IPPROTO_UDP:表示使用UDP協(xié)議 */ SOCKET servSock = SOCKET(AF_INET,SOCK_DGRAM, IPPROTO_UDP); sockaddr_in sockAddr; memset(&sockAddr, 0, sizeof(sockAddr));//初始化 sockAddr.sin_family = AF_INET; //同上,即使用ipv4 sockAddr.sin_addr.s_addr = inet_addr("127.0.0.1"); //說(shuō)明要監(jiān)聽的ip地址 sockAddr.sin_port = htons(9000); //說(shuō)明要監(jiān)聽的端口然后還是要綁定ip和端口的:
bind(servSock, (SOCKADDR*)&sockAddr, sizeof(SOCKADDR));無(wú)連接嘛,就不用監(jiān)聽了,等著發(fā)消息過(guò)來(lái)就好了。
/* recvfrom 和recv類似,不過(guò)是一個(gè)用于UDP接收數(shù)據(jù),一個(gè)是TCP接收數(shù)據(jù) 第一個(gè)參數(shù):上面和ip地址、端口綁定的套接字 第二個(gè)參數(shù):接收數(shù)據(jù) 第三個(gè)參數(shù):接收數(shù)據(jù)的最大長(zhǎng)度(字節(jié)) 第四個(gè)參數(shù):??? 第五個(gè)參數(shù):數(shù)據(jù)是從哪里來(lái)的(發(fā)送端的IP地址和端口) 第六個(gè)參數(shù):第五個(gè)參數(shù)的大小 返回值:實(shí)際接收的數(shù)據(jù)大小(字節(jié)) */ int readlen = 200; char buf[readlen+10]; sockaddr_in clntAddr; int recvlen = recvfrom(servSock, buf, readlen, 0, (sockaddr*)&clntAddr, &nSize);好的,信息我都收到了,我要關(guān)閉了(和TCP一樣)
closesocket(servSock); WSACleanup();發(fā)送端
和上面一模一樣
SOCKET servSock = SOCKET(AF_INET,SOCK_DGRAM, IPPROTO_UDP); sockaddr_in sockAddr; memset(&sockAddr, 0, sizeof(sockAddr));//初始化 sockAddr.sin_family = AF_INET; //同上,即使用ipv4 sockAddr.sin_addr.s_addr = inet_addr("127.0.0.1"); //說(shuō)明接收端的ip地址 sockAddr.sin_port = htons(9000); //說(shuō)明接收端的端口好的,我們可以發(fā)送信息了
/* sendto 和send類似 第一個(gè)參數(shù):發(fā)送用的套接字 第二個(gè)參數(shù):發(fā)送的內(nèi)容 第三個(gè)參數(shù):發(fā)送內(nèi)容的長(zhǎng)度 第四個(gè)參數(shù):??? 第五個(gè)參數(shù):接收端的ip地址和端口 第六個(gè)參數(shù):第五個(gè)參數(shù)的大小 */ sendto(servSock,"Hello Server",13,0,(sockaddr*)&servAddr,sizeof(sockaddr));好了,現(xiàn)在發(fā)送完了,是時(shí)候關(guān)閉資源了
closesocket(servSock); WSACleanup();總結(jié)
以上是生活随笔為你收集整理的c++ socket学习(1.2)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 浪花一朵朵剧情介绍
- 下一篇: c++ socket学习(1.3)