-
大小: 2.42MB文件類(lèi)型: .rar金幣: 2下載: 0 次發(fā)布日期: 2023-09-12
- 語(yǔ)言: C/C++
- 標(biāo)簽:
資源簡(jiǎn)介
數(shù)據(jù)包。在OSI模型中,在第四層——傳輸層,處于IP協(xié)議的上一層。UDP有不提供數(shù)據(jù)報(bào)分組、組裝和不能對(duì)數(shù)據(jù)包的排序的缺點(diǎn),也就是說(shuō),當(dāng)報(bào)文發(fā)送之后,是無(wú)法得知其是否安全完整到達(dá)的。 UDP用來(lái)支持那些需要在計(jì)算機(jī)之間傳輸數(shù)據(jù)的網(wǎng)絡(luò)應(yīng)用。包括網(wǎng)絡(luò)視頻會(huì)議系統(tǒng)在內(nèi)的眾多的客戶(hù)/服務(wù)器模式的網(wǎng)絡(luò)應(yīng)用都需要使用UDP協(xié)議。UDP協(xié)議從問(wèn)世至今已經(jīng)被使用了很多年,雖然其最初的光彩已經(jīng)被一些類(lèi)似協(xié)議所掩蓋,但是即使是在今天,UDP仍然不失為一項(xiàng)非常實(shí)用和可行的網(wǎng)絡(luò)傳輸層協(xié)議。

代碼片段和文件信息
#include
#include
#include
/*
此客戶(hù)端、服務(wù)器?實(shí)現(xiàn)了交互式的通信方式
每次通信時(shí)由客戶(hù)端或者服務(wù)器輸入要發(fā)送的數(shù)據(jù)并保存到
recvBuf變量中在發(fā)送,
在客戶(hù)端或者服務(wù)器接受數(shù)據(jù)時(shí),都要進(jìn)行判斷
判斷對(duì)方是否想退出通信,這是通過(guò)對(duì)方發(fā)來(lái)的消息的第一個(gè)字符是否為e來(lái)實(shí)現(xiàn)的,
若是則通過(guò)break語(yǔ)句跳出循環(huán),
通過(guò)調(diào)用closesocket函數(shù)關(guān)閉一個(gè)套接口,在調(diào)用WSACleanup終止Ws2_32.dll的使用
程序也終止。
*/
void?main()
{
WORD?wVersionRequested;
WSADATA?wsaData;
int?err;
wVersionRequested?=?MAKEWORD(?1?1?);
err?=?WSAStartup(?wVersionRequested?&wsaData?);
if?(?err?!=?0?)
{
return;
}
if?(?LOBYTE(?wsaData.wVersion?)?!=?1?||//判斷版本是否為1?1
????????HIBYTE(?wsaData.wVersion?)?!=?1?)
{
WSACleanup(?);
return;?
}
SOCKET?SocketClient?=?socket(?AF_INET??SOCK_DGRAM??0);
SOCKADDR_IN?AddressServer;?//發(fā)送到服務(wù)器的地址信息
AddressServer.sin_addr.S_un.S_addr?=?inet_addr(“127.0.0.1“);
//將點(diǎn)分十進(jìn)制轉(zhuǎn)換為u_long型
AddressServer.sin_family?=AF_INET;
AddressServer.sin_port?=?htons(5000);//轉(zhuǎn)換為網(wǎng)絡(luò)字節(jié)序
char?recvBuf[100];//用于存儲(chǔ)接受的數(shù)據(jù)
char?sendBuf[100];//用于存儲(chǔ)要發(fā)送的數(shù)據(jù)
int?len=sizeof(SOCKADDR);
cout<<“********UDP網(wǎng)絡(luò)編程客戶(hù)端********“< while(1)
{
cout<<“請(qǐng)輸入數(shù)據(jù):“;
cin>>sendBuf;
sendto(SocketClient??sendBuf??strlen(sendBuf)+1??0(SOCKADDR*)&AddressServer??len);
recvfrom(?SocketClient??recvBuf??100??0??(SOCKADDR*)&AddressServer??&len);
//判斷服務(wù)器是否想退出,若是則退出循環(huán)
if(recvBuf[0]==‘e‘)
{
sendto(SocketClient??“會(huì)話(huà)結(jié)束!拜拜!“??strlen(“會(huì)話(huà)結(jié)束!拜拜!“)+1??0(SOCKADDR*)&AddressServer??len);
cout<<“會(huì)話(huà)結(jié)束!“< break;
}
cout<<“UDPServer?say:“< }
closesocket(?SocketClient?);
WSACleanup(?);
}
?屬性????????????大小?????日期????時(shí)間???名稱(chēng)
-----------?---------??----------?-----??----
?????文件????????532??2010-11-29?20:40??UDP協(xié)議實(shí)現(xiàn)交互式通信\UDPNetClient\UDPNetClient.dsw
?????文件???????1341??2010-12-04?22:04??UDP協(xié)議實(shí)現(xiàn)交互式通信\UDPNetClient\UDPNetClient.plg
?????文件??????41984??2010-12-28?12:20??UDP協(xié)議實(shí)現(xiàn)交互式通信\UDPNetClient\UDPNetClient.ncb
?????文件???????4390??2010-11-29?21:23??UDP協(xié)議實(shí)現(xiàn)交互式通信\UDPNetClient\UDPNetClient.dsp
?????文件???????1821??2010-12-04?22:04??UDP協(xié)議實(shí)現(xiàn)交互式通信\UDPNetClient\UDPNetClient.cpp
?????文件?????156672??2010-12-10?19:50??UDP協(xié)議實(shí)現(xiàn)交互式通信\UDPNetClient\Debug\vc60.idb
?????文件??????86016??2010-12-04?22:04??UDP協(xié)議實(shí)現(xiàn)交互式通信\UDPNetClient\Debug\vc60.pdb
?????文件?????525312??2010-12-04?22:04??UDP協(xié)議實(shí)現(xiàn)交互式通信\UDPNetClient\Debug\UDPNetClient.pdb
?????文件?????255996??2010-12-04?22:04??UDP協(xié)議實(shí)現(xiàn)交互式通信\UDPNetClient\Debug\UDPNetClient.ilk
?????文件?????213055??2010-12-04?22:04??UDP協(xié)議實(shí)現(xiàn)交互式通信\UDPNetClient\Debug\UDPNetClient.exe
?????文件????3706888??2010-11-30?21:13??UDP協(xié)議實(shí)現(xiàn)交互式通信\UDPNetClient\Debug\UDPNetClient.pch
?????文件??????17381??2010-12-04?22:04??UDP協(xié)議實(shí)現(xiàn)交互式通信\UDPNetClient\Debug\UDPNetClient.obj
?????文件??????48640??2010-12-28?12:20??UDP協(xié)議實(shí)現(xiàn)交互式通信\UDPNetClient\UDPNetClient.opt
?????文件????????532??2010-12-10?19:24??UDP協(xié)議實(shí)現(xiàn)交互式通信\UDPNetServer\UDPNetServer.dsw
?????文件??????50176??2010-12-20?21:44??UDP協(xié)議實(shí)現(xiàn)交互式通信\UDPNetServer\UDPNetServer.ncb
?????文件???????1362??2010-12-10?19:40??UDP協(xié)議實(shí)現(xiàn)交互式通信\UDPNetServer\UDPNetServer.plg
?????文件???????4396??2010-12-10?19:24??UDP協(xié)議實(shí)現(xiàn)交互式通信\UDPNetServer\UDPNetServer.dsp
?????文件?????254976??2010-12-10?19:49??UDP協(xié)議實(shí)現(xiàn)交互式通信\UDPNetServer\Debug\vc60.idb
?????文件??????86016??2010-12-10?19:40??UDP協(xié)議實(shí)現(xiàn)交互式通信\UDPNetServer\Debug\vc60.pdb
?????文件?????254504??2010-12-10?19:40??UDP協(xié)議實(shí)現(xiàn)交互式通信\UDPNetServer\Debug\UDPNetServer.ilk
?????文件?????213088??2010-12-10?19:40??UDP協(xié)議實(shí)現(xiàn)交互式通信\UDPNetServer\Debug\UDPNetServer.exe
?????文件?????533504??2010-12-10?19:40??UDP協(xié)議實(shí)現(xiàn)交互式通信\UDPNetServer\Debug\UDPNetServer.pdb
?????文件????3703748??2010-12-10?19:39??UDP協(xié)議實(shí)現(xiàn)交互式通信\UDPNetServer\Debug\UDPNetServer.pch
?????文件??????18243??2010-12-10?19:40??UDP協(xié)議實(shí)現(xiàn)交互式通信\UDPNetServer\Debug\UDPNetServer.obj
?????文件???????1970??2010-12-10?19:40??UDP協(xié)議實(shí)現(xiàn)交互式通信\UDPNetServer\UDPNetServer.cpp
?????文件??????48640??2010-12-20?21:44??UDP協(xié)議實(shí)現(xiàn)交互式通信\UDPNetServer\UDPNetServer.opt
?????目錄??????????0??2010-12-05?16:24??UDP協(xié)議實(shí)現(xiàn)交互式通信\UDPNetClient\Debug
?????目錄??????????0??2010-12-10?19:25??UDP協(xié)議實(shí)現(xiàn)交互式通信\UDPNetServer\Debug
?????目錄??????????0??2010-12-05?16:24??UDP協(xié)議實(shí)現(xiàn)交互式通信\UDPNetClient
?????目錄??????????0??2010-12-10?19:25??UDP協(xié)議實(shí)現(xiàn)交互式通信\UDPNetServer
............此處省略4個(gè)文件信息
評(píng)論
共有 條評(píng)論