资源简介
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\UdpClientfr
文件 30208 2012-10-11 20:42 exe\UdpServer.exe
文件 31232 2012-10-11 20:56 exe\UdpServerfr
文件 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\UdpClientfr
文件 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\UdpServerfr
文件 3686 2012-10-12 20:47 丢包率测试程序和代码\UdpClient.h
文件 464 2012-10-12 21:22 丢包率测试程序和代码\UdpClientfr
文件 57344 2012-10-12 21:01 丢包率测试程序和代码\UdpClientfr
文件 4621 2012-10-12 21:16 丢包率测试程序和代码\UdpServer.h
文件 262 2012-10-12 20:11 丢包率测试程序和代码\UdpServerfr
文件 33280 2012-10-12 21:10 丢包率测试程序和代码\UdpServerfr
目录 0 2012-10-11 21:08 exe
目录 0 2012-10-12 21:22 src
目录 0 2012-10-12 21:23 丢包率测试程序和代码
----------- --------- ---------- ----- ----
828966 21
相关资源
- VisualStudioUninstaller vs卸载工具
- 组态王驱动开发包3.0.0.7(中文)
- 多窗口后台鼠标连点器
- 使用选择性重传协议实现UDP可靠通信
- Windows异步套接字网络编程
- VC 获得文件属性 获取文件的创建时
- 读者写者问题(读者优先,写者优先
- 用VC 编写的仿QQ聊天室程序源代码
- 外点法程序
- 外罚函数程序
- qt-电子点菜系统
- 推箱子及人工智能寻路C 源代码
- 自己写的航空订票系统c 版--数据结构
- 数据结构实验魔王语言
- MUSIC算法c 实现
- C 餐厅叫号系统(QT平)
- 国际象棋c 完整版
-
ob
jectARX给Auto CAD加工具条 - 画图程序MFC/VC/VC CRectTracker 串行化
- MFC网络编程实例
- c 课程设计 职工信息管理系统
- VC 游戏编程—附源代码
- IpHlpApi.h&IpHlpApi.lib
- 清华大学 c 郑莉 ppt课件
- c 程序判断离散数学中命题公式
- 多项式求和(数据结构C 版)
- vc 6.0开发的流程图编辑器
- VC 天空盒(skyBox)实现(附源代码)
- c MFC 画多边形
- 用C 实现的对网络上的ARP数据包进行
评论
共有 条评论