资源简介

1、利用数据报套接字编写回射服务器和客户端。 2、使用类的形式封装服务器和客户端的网络功能框架,提高程序的适用性。 3、在编程框架的基础上扩展程序功能,测试网络丢包率。

资源截图

代码片段和文件信息

// UdpClient.cpp : 定义控制台应用程序的入口点。
//
#include “stdafx.h“
#include 
#include 
#include 
#include 
#pragma comment(lib“WS2_32.lib“)

#define BUF_SIZE 1024

int _tmain(int argc _TCHAR* argv[])
{
//声明变量
WSADATA wsaData;
SOCKET Socket;
SOCKADDR_IN RecvAddr;
SOCKADDR_IN SendAddr;
int port = 27015;
char buf[BUF_SIZE];
char ip[BUF_SIZE];
int SendAddrSize = sizeof(SendAddr);

//初始化Socket环境
if(WSAStartup(MAKEWORD(22)&wsaData) != 0)
{
printf(“WSAStartup failed !\n“);
return -1;
}

//创建用于监听的Socket
Socket = socket(AF_INETSOCK_DGRAMIPPROTO_UDP);
if(INVALID_SOCKET == Socket)
{
printf(“socket failed !\n“);
WSACleanup();
return -1;
}
//设置服务器Socket地址
printf(“Please input server IP!  “);
std::string ServerIP;
std::getline(std::cinServerIP);
strcpy_s(ipServerIP.c_str());

//设置服务器Socket地址
RecvAddr.sin_family = AF_INET;
RecvAddr.sin_port = htons(port);
RecvAddr.sin_addr.S_un.S_addr = inet_addr(ip);

//向服务器发送信息,并接收回射信息
while(true){
printf(“Please input a string to send  UDP: “);
std::string str;
std::getline(std::cinstr);
ZeroMemory(bufBUF_SIZE);
strcpy_s(bufstr.c_str());
//向服务器发送信息
int retVal = sendto(SocketbufBUF_SIZE0(SOCKADDR*)&RecvAddrsizeof(RecvAddr));
if(SOCKET_ERROR == retVal)
{
printf(“recv failed !\n“);
break;
}
ZeroMemory(bufBUF_SIZE);
//接收服务器回射信息
retVal = recvfrom(SocketbufBUF_SIZE0(SOCKADDR*)&SendAddr&SendAddrSize);
if(SOCKET_ERROR == retVal)
{
printf(“recv failed !\n“);
break;
}
//如果收到“quit”,则客户端退出,否则显示回射信息
if(strcmp(buf“quit“) == 0)
{
printf(“quit!\n“);
break;
}
printf(“Recv From Server UDP: %s\n“buf);
}


//释放Socket
printf(“Closing socket. UDP\n“);
closesocket(Socket);
WSACleanup();

//暂停,按任意键退出
system(“pause“);
return 0;
}




 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件        543  2012-10-11 21:09  Readme.txt

     文件     556032  2012-12-01 10:01  基于数据报套接字的回射程序设计与实验.doc

     文件      48128  2012-10-11 20:38  exe\UdpClient.exe

     文件      51712  2012-10-11 20:45  exe\UdpClientframe.exe

     文件      30208  2012-10-11 20:42  exe\UdpServer.exe

     文件      31232  2012-10-11 20:56  exe\UdpServerframe.exe

     文件       2025  2012-10-11 20:37  src\UdpClient.cpp

     文件       3058  2012-10-11 20:46  src\UdpClient.h

     文件        242  2012-10-11 20:46  src\UdpClientframe.cpp

     文件       2420  2012-10-11 20:49  src\UdpServer.cpp

     文件       3479  2012-10-11 21:00  src\UdpServer.h

     文件        230  2012-10-11 20:57  src\UdpServerframe.cpp

     文件       3686  2012-10-12 20:47  丢包率测试程序和代码\UdpClient.h

     文件        464  2012-10-12 21:22  丢包率测试程序和代码\UdpClientframe.cpp

     文件      57344  2012-10-12 21:01  丢包率测试程序和代码\UdpClientframe.exe

     文件       4621  2012-10-12 21:16  丢包率测试程序和代码\UdpServer.h

     文件        262  2012-10-12 20:11  丢包率测试程序和代码\UdpServerframe.cpp

     文件      33280  2012-10-12 21:10  丢包率测试程序和代码\UdpServerframe.exe

     目录          0  2012-10-11 21:08  exe

     目录          0  2012-10-12 21:22  src

     目录          0  2012-10-12 21:23  丢包率测试程序和代码

----------- ---------  ---------- -----  ----

               828966                    21


评论

共有 条评论