资源简介
数据包。在OSI模型中,在第四层——传输层,处于IP协议的上一层。UDP有不提供数据报分组、组装和不能对数据包的排序的缺点,也就是说,当报文发送之后,是无法得知其是否安全完整到达的。 UDP用来支持那些需要在计算机之间传输数据的网络应用。包括网络视频会议系统在内的众多的客户/服务器模式的网络应用都需要使用UDP协议。UDP协议从问世至今已经被使用了很多年,虽然其最初的光彩已经被一些类似协议所掩盖,但是即使是在今天,UDP仍然不失为一项非常实用和可行的网络传输层协议。
代码片段和文件信息
#include
#include
#include
/*
此客户端、服务器 实现了交互式的通信方式
每次通信时由客户端或者服务器输入要发送的数据并保存到
recvBuf变量中在发送,
在客户端或者服务器接受数据时,都要进行判断
判断对方是否想退出通信,这是通过对方发来的消息的第一个字符是否为e来实现的,
若是则通过break语句跳出循环,
通过调用closesocket函数关闭一个套接口,在调用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; //发送到服务器的地址信息
AddressServer.sin_addr.S_un.S_addr = inet_addr(“127.0.0.1“);
//将点分十进制转换为u_long型
AddressServer.sin_family =AF_INET;
AddressServer.sin_port = htons(5000);//转换为网络字节序
char recvBuf[100];//用于存储接受的数据
char sendBuf[100];//用于存储要发送的数据
int len=sizeof(SOCKADDR);
cout<<“********UDP网络编程客户端********“< while(1)
{
cout<<“请输入数据:“;
cin>>sendBuf;
sendto(SocketClient sendBuf strlen(sendBuf)+1 0(SOCKADDR*)&AddressServer len);
recvfrom( SocketClient recvBuf 100 0 (SOCKADDR*)&AddressServer &len);
//判断服务器是否想退出,若是则退出循环
if(recvBuf[0]==‘e‘)
{
sendto(SocketClient “会话结束!拜拜!“ strlen(“会话结束!拜拜!“)+1 0(SOCKADDR*)&AddressServer len);
cout<<“会话结束!“< break;
}
cout<<“UDPServer say:“< }
closesocket( SocketClient );
WSACleanup( );
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 532 2010-11-29 20:40 UDP协议实现交互式通信\UDPNetClient\UDPNetClient.dsw
文件 1341 2010-12-04 22:04 UDP协议实现交互式通信\UDPNetClient\UDPNetClient.plg
文件 41984 2010-12-28 12:20 UDP协议实现交互式通信\UDPNetClient\UDPNetClient.ncb
文件 4390 2010-11-29 21:23 UDP协议实现交互式通信\UDPNetClient\UDPNetClient.dsp
文件 1821 2010-12-04 22:04 UDP协议实现交互式通信\UDPNetClient\UDPNetClient.cpp
文件 156672 2010-12-10 19:50 UDP协议实现交互式通信\UDPNetClient\Debug\vc60.idb
文件 86016 2010-12-04 22:04 UDP协议实现交互式通信\UDPNetClient\Debug\vc60.pdb
文件 525312 2010-12-04 22:04 UDP协议实现交互式通信\UDPNetClient\Debug\UDPNetClient.pdb
文件 255996 2010-12-04 22:04 UDP协议实现交互式通信\UDPNetClient\Debug\UDPNetClient.ilk
文件 213055 2010-12-04 22:04 UDP协议实现交互式通信\UDPNetClient\Debug\UDPNetClient.exe
文件 3706888 2010-11-30 21:13 UDP协议实现交互式通信\UDPNetClient\Debug\UDPNetClient.pch
文件 17381 2010-12-04 22:04 UDP协议实现交互式通信\UDPNetClient\Debug\UDPNetClient.obj
文件 48640 2010-12-28 12:20 UDP协议实现交互式通信\UDPNetClient\UDPNetClient.opt
文件 532 2010-12-10 19:24 UDP协议实现交互式通信\UDPNetServer\UDPNetServer.dsw
文件 50176 2010-12-20 21:44 UDP协议实现交互式通信\UDPNetServer\UDPNetServer.ncb
文件 1362 2010-12-10 19:40 UDP协议实现交互式通信\UDPNetServer\UDPNetServer.plg
文件 4396 2010-12-10 19:24 UDP协议实现交互式通信\UDPNetServer\UDPNetServer.dsp
文件 254976 2010-12-10 19:49 UDP协议实现交互式通信\UDPNetServer\Debug\vc60.idb
文件 86016 2010-12-10 19:40 UDP协议实现交互式通信\UDPNetServer\Debug\vc60.pdb
文件 254504 2010-12-10 19:40 UDP协议实现交互式通信\UDPNetServer\Debug\UDPNetServer.ilk
文件 213088 2010-12-10 19:40 UDP协议实现交互式通信\UDPNetServer\Debug\UDPNetServer.exe
文件 533504 2010-12-10 19:40 UDP协议实现交互式通信\UDPNetServer\Debug\UDPNetServer.pdb
文件 3703748 2010-12-10 19:39 UDP协议实现交互式通信\UDPNetServer\Debug\UDPNetServer.pch
文件 18243 2010-12-10 19:40 UDP协议实现交互式通信\UDPNetServer\Debug\UDPNetServer.obj
文件 1970 2010-12-10 19:40 UDP协议实现交互式通信\UDPNetServer\UDPNetServer.cpp
文件 48640 2010-12-20 21:44 UDP协议实现交互式通信\UDPNetServer\UDPNetServer.opt
目录 0 2010-12-05 16:24 UDP协议实现交互式通信\UDPNetClient\Debug
目录 0 2010-12-10 19:25 UDP协议实现交互式通信\UDPNetServer\Debug
目录 0 2010-12-05 16:24 UDP协议实现交互式通信\UDPNetClient
目录 0 2010-12-10 19:25 UDP协议实现交互式通信\UDPNetServer
............此处省略4个文件信息
- 上一篇:MFC创建多线程工作者线程demo
- 下一篇:SVM C语言实现
评论
共有 条评论