欢迎来到天天文库
浏览记录
ID:13290020
大小:194.11 KB
页数:22页
时间:2018-07-21
《一个自定义文件传输协议的设计与实现》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、一个CS模式自定义文件传输协议的设计与实现班级:4099硕学号:3114370082姓名:周啸林1协议需求分析1.1摘要针对移动计算领域的“上传文件”这一场景,设计本协议。本报告描述了在客户端-服务器模式下,基于UDP的一个自定义文件传输协议(应用层)的设计与实现,并用该自定义的文件传输协议开发了一个小应用“UDP文件传输精灵”(UDPFileTFGenius)来测试该协议。1.2功能描述UDPFileTFGenius在应用层采用自定义的文件传输协议,传输层采用UDP协议,在2台或多台(2对1或多对一)
2、计算机之间进行文件传输。软件分为客户端软件和服务器端软件两个部分,分别安装在发送和接受计算机上,客户端作为发送端,可以将指定的文件发送到与之互联的服务器端,服务器端接收后保存文件。具体步骤为:1,在服务器端程序中设定服务器端网络端口;2,启动服务器端程序;3,在客户端程序中设定服务器端IP及网络端口及需要传输的文件;4,启动客户端程序,完成文件传输。2协议概要设计2.1开发环境采用Visualstudio2010集成开发环境,语言采用C++。1.1系统框图进行数据传输时,不进行服务器端和客户端之间的连接
3、操作,服务器端不监听是否有客户端连接本机的网络端口,即接收数据。2协议详细设计2.1客户端函数模块函数名intcilentSend(char*fileName)参数char*fileName,文件名称字符串指针功能初始化网络端口设置,绑定服务器端端口,从客户端向服务器端发送指定的文件返回值SOCK_WSA_ERR(-1)//启动winsock失败SOCK_CRSOCK_ERR(-2)//创建SOCKET失败SOCK_BIND_ERR(-3)//绑定端口失败SOCK_SEND_ERR(-4)//发送数据失
4、败SOCK_CLOSE_ERR(-5)//关闭SOCKET失败SOCK_RECVE_ERR(-6)//接收数据失败(客户端不会返回此值)FILE_ERR(-7)//文件错误TRAN_SUCCESS0//传输成功函数名intfileSend(SOCKETs,SOCKADDR_INaddrReceive,char*filename)参数SOCKETs套接字SOCKADDR_INaddrReceive套接字结构体,包含端口、网络地址、协议类型等信息char*filename待传输文件的文件名字符串指针功能通过
5、套接字发送文件数据返回值SOCK_SEND_ERR(-4)//发送数据失败FIEL_ERR(-7)//文件错误TRAN_SUCCESS(-8)//传输成功函数名intwinSocketInit()参数无功能winsocket版本协商及WinsockDLL初始化返回值SOCK_WSA_ERR(-1)//启动winsock失败0//winsock初始化成功函数名voidprintReturn(intnRet)参数intnRet错误代号功能输出最终运行错误/正常状态返回值无函数名longfileSize(FI
6、LE*stream)参数FILE*stream文件指针功能计算文件大小(字节)返回值文件大小1.1服务器端函数模块函数名intserverReceive()参数无功能初始化网络端口设置,接收发送至该端口的文件数据,根据发送端IP地址的不同创建不同的文件夹保存各发送端的文件。返回值SOCK_WSA_ERR(-1)//启动winsock失败SOCK_CRSOCK_ERR(-2)//创建套接字失败SOCK_BIND_ERR(-3)//绑定端口失败(服务器端不会返回此值)SOCK_SEND_ERR(-4)//发
7、送数据失败(服务器端不会返回此值)SOCK_CLOSE_ERR(-5)//关闭SOCKET失败SOCK_RECVE_ERR(-6)//接受数据失败FILE_ERR(-7)//文件错误TRAN_SUCCESS0//传输成功函数名intRecevData(SOCKET*s)参数SOCKETs套接字功能接收通过套接字传入的文件数据,并根据发送端IP地址的不同分别保存。返回值SOCK_RECVE_ERR(-6)//接受数据失败FILE_ERR(-7)//文件错误TRAN_SUCCESS0//传输成功函数名int
8、WinsocketInit()参数无功能winsocket版本协商及WinsockDLL初始化返回值SOCK_WSA_ERR(-1)//启动winsock失败0//初始化成功函数名voidPrintReturn(intnRet)参数intnRet错误代号功能输出最终运行错误/正常状态返回值无1协议运行流程图1.1客户端协议流程图1.1服务器端协议流程图2协议编码实现2.1客户端代码//cilent.cppv1.1,按照UDPFileTF协议
此文档下载收益归作者所有