借贷网站开发是否合法,网站开发收,网页设计作业源码,怎样修wordpress插件页脚1 概述 TFTP协议是基于UDP的简单文件传输协议#xff0c;协议双方为Client和Server.Client和Server之间通过5种消息来传输文件,消息前两个字节Code是消息类型#xff0c;消息内容随消息类型不同而不同。传输模式有三种#xff1a;octet,netascii和mail#xff0c;octet为二…1 概述 TFTP协议是基于UDP的简单文件传输协议协议双方为Client和Server.Client和Server之间通过5种消息来传输文件,消息前两个字节Code是消息类型消息内容随消息类型不同而不同。传输模式有三种octet,netascii和mailoctet为二进制模式netascii为文本模式mail为文本模式不过收到的文本不是保存到文件而是打印出来现在已不常用。DATA消息种数据长度是512字节最后一个数据包可能会小于512。详见TFTP协议 本文描述如何利用C基于Qt5.12实现TFTP的Server和Client。
2 概要设计
TFTP客户端通过GetFile来下载文件通过PutFile上传文件。
2.1 序列图
GetFile序列图 ,----. ,----------. ,----------.|User| |TFTPClient| |TFTPServer|--- --------- ---------| GetFile | | | ----------------- | | | | | | Request of get file over UDP| | | ---------------------------- | | | | | Reponse a file over UDP | | | ---------------------------- | | | | A File | | | ----------------- | ,---. ,---------. ,---------.|User| |TFTPClient| |TFTPServer|---- ---------- ----------PutFile序列图 ,----. ,----------. ,----------.|User| |TFTPClient| |TFTPServer|--- --------- ---------| PutFile | | | ----------------- | | | | | | Request of put file over UDP| | | ---------------------------- | | | | | Reponse ACK over UDP | | | ---------------------------- | | | | ACK | | | ----------------- | ,---. ,---------. ,---------.|User| |TFTPClient| |TFTPServer|---- ---------- ----------2.2 类图
如图所示整个软件有8个类: 类型说明
TFTP类实现TFTP协议。TFtpServerFile类实现服务端文件收发。TFtpClientFile类实现客户端文件收发。BaseUdp类定义UDP写接口。ServerSocket类实现服务端UDP写接口。ClientSocket类实现客户端UDP写接口。TFtpServer类启动服务等待客户端上传/下载文件。TFtpClient类连服务端来上传/下载文件。
2.3 模块划分
软件划分为如下模块
Core是一个静态库Server是一个EXE程序调用Core库实现TFTP服务端功能。Client是一个EXE程序调用Core库实现TFTP客户端功能。
2.3.1 Core
Core包括下面4个类
FTPBaseUdpTFtpClientFileTFtpServerFile
2.3.2 Client
Client包括下面3个类
ClientSockeTFtpClientTFtpClientWidget
2.3.3 Server
Server包括下面3个类
ServerSocketTFtpServerTFtpServerWidget
Qt实现TFTP Server和 TFTP Client(二)