没有合适的资源?快使用搜索试试~ 我知道了~
基于UDP网络系统设计
需积分: 9 18 下载量 185 浏览量
2008-12-08
20:15:45
上传
评论 1
收藏 76KB DOC 举报
温馨提示
试读
15页
(1)UDP客户端程序设计 要求:程序调试通过后能与UDP服务器端程序进行通信。 调试环境:Visual C++ 6.0 程序名称:client.cpp 客户端IP地址和端口:由系统指定 程序功能:客户端的程序向服务器提出UDP连接请求,并凭密码(密码初始化为:123456)登陆,若密码验证正确则开始接收数据,然后再向服务器发送信息,信息从键盘输入。若服务器关闭服务,则通信终止。 命令格式:client [服务器IP地址] 命令举例:clent 125.47.9.99 说明:上面设要和IP地址为125.47.9.99、端口号为5050的服务器进行通信 (2)UDP服务器端程序设计 要求:程序调试通过后能与TCP客户端程序进行通信。 调试环境:Visual C++ 6.0 服务器IP地址:由系统指定 服务器端口号:5050 程序名称:server.cpp 程序功能:服务器端的程序当有客户端提出连接请求,判断密码正确与否,若连接成功,显示客户IP地址和端口号。然后,给客户端发送由键盘输入的文字信息,接收来自客户端的信息,亦可终止服务。 命令格式:server (3)预期结果 服务器端开启之后,等待客户端连接。客户凭密码进行登陆,若密码错误,服务器端自动返回错误提示。若登陆成功,则服务器端就可以与客户端进行信息通信了。若想终止通信,服务器可以选择
资源推荐
资源详情
资源评论
第一部分 设计思想的说明
1 、设计目标
(1)UDP 客户端程序设计
要求:程序调试通过后能与 UDP 服务器端程序进行通信。
调试环境:Visual C++ 6.0
程序名称:client.cpp
客户端 IP 地址和端口:由系统指定
程序功能:客户端的程序向服务器提出 UDP 连接请求,并凭密码(密码初始化为:123456)登陆,
若密码验证正确则开始接收数据,然后再向服务器发送信息,信息从键盘输入。若服务器关闭服务,则通
信终止。
命令格式:client [服务器 IP 地址]
命令举例:clent 125.47.9.99
说明:上面设要和 IP 地址为 125.47.9.99、端口号为 5050 的服务器进行通信
(2)UDP 服务器端程序设计
要求:程序调试通过后能与 TCP 客户端程序进行通信。
调试环境:Visual C++ 6.0
服务器 IP 地址:由系统指定
服务器端口号:5050
程序名称:server.cpp
程序功能:服务器端的程序当有客户端提出连接请求,判断密码正确与否,若连接成功,显示客户
IP 地址和端口号。然后,给客户端发送由键盘输入的文字信息,接收来自客户端的信息,亦可终止服务。
命令格式:server
(3)预期结果
服务器端开启之后,等待客户端连接。客户凭密码进行登陆,若密码错误,服务器端自动返回错误
提示。若登陆成功,则服务器端就可以与客户端进行信息通信了。若想终止通信,服务器可以选择关闭服
务,此时客户端也将自动终止通信。
2、设计理论
无连接的数据报(SOCK_DGRAM)传输服务在传输层使用 UDP 协议。基于 UDP 协议的网络应用
程序在运行时,由于受到环境影响较小,所以不容易出错。UDP 协议占用网络资源较少,数据处理较快,
所以在网络中传送对安全性要求不是十分高数据时,其优点比较明显。目前很多流行的网络应用程序都是
基于 UDP 协议的,如 OICQ、ICQ 等。由于其不是面向连接的网络协议,其缺点也是非常明显的,有些
时候甚至是致命的。因为使用 UDP 协议来传送数据,在数据发送后,在发送方并不确认对方是否接收到。
这样就可能导致传送的数据在网络中丢失,尤其在网络条件并不很好的情况下,丢失数据包的现象就更多。
所以传送重要数据一般不采用 UDP 协议。
第二部分 函数说明
1 、函数说明
(1) 检查协议栈:WSAStartup(MAKEWORD(2,2),&wsaData);
(2) 创建套接口:socket(AF_INET,SOCK_DGRAM,0);
(3) 地址绑定:bind();
(4) 进行数据传输:sendto(),recvfrom();
(5) 关闭套接口:closesocket(serverSocket);
(6) 释放协议栈:WASCleanup();
第三部分 程序源代码
//***************************************************************
//******** 基于 UDP 的网络通信系统[服务器] *********
//***************************************************************
#include
#include
#include
#include
#pragma comment(lib,"ws2_32.lib")//对象/库模块加入"ws2_32.lib"
#define DEFAULT_PORT 5050 //服务器端口号为 5050
#define BUFFER_LENGTH 1024*10 //数据缓冲区长度 1024
char password[]="123456"; //登陆服务器密码
void main()
{
int iPort=DEFAULT_PORT;
WSADATA wsaData;
SOCKET sSocket;
int iLen; //客户地址长度
int iSend; //发送的数据长度
int iRecv; //接收的数据长度
char send_buf[BUFFER_LENGTH]; //要发给客户的信息
剩余14页未读,继续阅读
资源评论
aa3619100
- 粉丝: 0
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- pta题库答案c语言之排序4统计工龄.zip
- pta题库答案c语言之树结构7堆中的路径.zip
- pta题库答案c语言之树结构3TreeTraversalsAgain.zip
- pta题库答案c语言之树结构2ListLeaves.zip
- pta题库答案c语言之树结构1树的同构.zip
- 基于C++实现民航飞行与地图简易管理系统可执行程序+说明+详细注释.zip
- pta题库答案c语言之复杂度1最大子列和问题.zip
- 三维装箱问题(Three-Dimensional Bin Packing Problem,3D-BPP)是一个经典的组合优化问题
- 以下是一些关于Linux线程同步的基本概念和方法.txt
- 以下是一个简化的示例,它使用pygame库来模拟烟花动画的框架.txt
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功