用FTP传输下载诊断事件与相关动作
来源:互联网 发布:双代号网络计划规则 编辑:程序博客网 时间:2024/05/22 11:59
1、为FTP的传输连接打开一个TCP套接字
2、依据获取到的连接回应
如果获取到FTP的积极响应,发送FTP USER 命令:把user的值设成“anonymous”
错误条件:如果接收到FTP的消极响应或是出现超时,把DiagnosticsState设置成Error_InitConnectionFailed 并终止测试。
3、依据接受到的“enter password”请求
发送PASSWORD命令:输入密码作为anoymous 登录的密码
错误条件:如果“enter password”请求失败或是超时,把DiagnosticsState设置成Error_PasswordRequestFailed 并终止测试。
4、依据password回应
如果回应是“successfully logged in”,发送TYPE命令:设置传输模式
错误条件:如果回应不是“successfully logged in”,把DiagnosticsState设置成Error_LoginFailed 并终止测试。
5、依据接收的传输模式回应
如果传输模式设置成功,发送PASV命令来请求把服务器设置成消极模式。
错误条件:如果传输模式回应失败或是超时,把DiagnosticsState设置成Error_NoTransferMode 并终止测试。
6、依据接收到的消极模式回应
如果消极模式回应是成功的,请求建立FTP数据连接
把TCPOpenRequestTime设置为当前时间
错误条件:如果消极模式回应失败或超时,把DiagnosticsState设置成Error_NoPASV 并终止测试。
7、依据接收到的TCP数据连接回应:(FTP数据连接)
如果成功建立,把TCPOpenResponseTime设置成当前时间。
错误条件:如果连接不能打开或超时,把DiagnosticsState设置成Error_Response 并终止测试。
发送SIZE命令:表明将要下载文件的大小
8、依据接收到的SIZE命令回应
用字节记录文件长度,发送RTRV命令请求文件内容
把ROMTime设置成当前时间
错误条件:如果接收到服务器对SIZE命令的无效回应,或是出现超时,把DiagnosticsState设置成Error_IncorrectSize 并终止测试。
9、依据接收到FTP数据连接的第一个单元的数据(例如:文件的第一部分内容)
把BOMTime设置成当前时间
记录以太网在该端口接收到的字节数,该数与后来的TotalBytesReceived的计算有关
错误条件:如果FTP传输超时,把DiagnosticsState设置成Error_Timeout 并终止测试。
10、依据接收到的FTP数据连接的最后的一个数据包
把EOMTime设置成当前时间
记录以太网在该端口接收到的字节数,计算TotalBytesReceived。
11、一旦EOMTime被设置:
把DiagnosticsState设置成Completed
服务器关闭连接,或者出现超时时发送RESET flag。
- 用FTP传输下载诊断事件与相关动作
- 用FTP传输做上传诊断
- FTP传输和下载文件
- 接口与回调(相关话题:特定事件发生应该采取动作、监听)
- ftp上传与下载
- ftp下载与上传
- 用WinInet实现Ftp传输
- 用php实现ftp传输
- 用python实现FTP传输
- window与Unix/linux 文件 ftp传输
- JSP与JavaBean相关的动作标签
- ftp相关方法,下载没写完
- ftp下载,TXT文件操作相关
- 动作事件
- Delphi实现Ftp客户端下载(支持断点续传,多线程传输)
- Delphi实现Ftp客户端下载(支持断点续传,多线程传输)
- ftp的下载与上传
- FTP附件上传与下载
- php取上月(上周,上上周,本周)日期
- 【u116】最短路计数
- Linux
- javascript 清除字符串空格
- Mac下安装pip报错
- 用FTP传输下载诊断事件与相关动作
- Linux下OpenCV的环境搭建
- MVC
- Android时区和时间同步
- python tkinter label编写案例分析
- mtklog结构及分析
- 基于Linux的SOCKET编程之TCP半双工Client-Server聊天程序
- 自学iOS开发系列----OC(类别和扩展)
- JDBC概述