tftp服务器的实现.docVIP

  • 14
  • 0
  • 约1.69千字
  • 约 7页
  • 2016-10-16 发布于天津
  • 举报
tftp服务器的实现.doc

tftp服务器的实现 一、 实验目的 使用IP网络提供的UDP传输协议,实现一个简单实现一个简单的文件传送软件,了解以下两方面内容: 传输层所提供的TCP和UDP两种服务的特点。 应用层和传输层之间的软件接口风格,熟悉socket机制和客户端/服务器方式程序的结构。 二、 实验内容 实现一个简单的文件传送软件,完成服务器端和客户端的程序。服务器端可以支持多客户端同时工作。 客户端软件启动时,在命令行参数中提供服务器进程所处计算机的IP地址,并实现下列命令: 户登录命令:LOGINusername 提供客户名,服务器允许登录或拒绝登录(如:与其他客户重名),登录结束后打印登录 成功或失败信息,失败时打印出失败原因。 2、在线用户名列表命令:LIST 列出当前在线的用户名表,以及用户所处计算机的IP地址。 3、发送消息命令:SEND {all|username} {B|U} messages 指定接收者(可能是“大家”或者某个用户)。 指定方式:是否所有在线用户均能看到这个消息(B-broadcast),或者是只有接收者能看到这一消息(u-unicast)。 指定消息内容:客户软件将消息发送到Server,Server根据情况负责转发到某个在线用户或者转发给所有在线用户,发送成功后,将消息回显到客户端,发送失败则应显示出失败原因(如:无效用户名,等等) 4、客户端软件应实时显示出Server送达的信息。 5、退出命令:QUIT。 三、 实验步骤: 1、背景知识学习: 了解TCP,UDP传输层协议所提供的服务 了解winsock编程相关的函数,函数参数以及调用方式,主要的调用时序 集成开发环境或者其他编程工具 2、设计应用层协议 设计应用层协议的报文格式,约定server使用的协议端口号,以及如何使用传输层TCP无记录边界字节流封装报文。 客户端软件由windows提供;使用Select调用,实现单线程server。 四、 系统概述: 运行环境:windows XP 编译: Microsoft visual C++ 6.0 使用方法: 编译运行后程序界面如下: b. 打开命令提示符,输入tftp,可看到协议的使用说明: c.以下载为例,在命令行输入tftp –i get aaa.txt D:\b.txt,可看到如下内容: 五、 算法思想: 1、头文件: #include stdio.h #include stdlib.h #include winsock2.h #include string.h 2、结构体: struct req { //读写请求包 unsigned short op ; char fn[514] ; }; struct payload { //数据包 unsigned short op ; unsigned short block ; char data[512] ; }; struct ack { //确认包 unsigned short op ; unsigned short block ; char fill[512] ; }; struct err { //错误包 unsigned short op ; unsigned short block ; char mes[512] ; }; 3、实验流程图: 4、主要函数: WSAStartup();//初始化winsock socket() ;//创建套接字 bind() ;//绑定套接字 recvfrom();//取数据包 fopen();//打开文件 fread();//从文件读数据 select();//监听

文档评论(0)

1亿VIP精品文档

相关文档