网络编程day3-FTP客户端项目

FTP协议

    FTP 的独特的优势同时也是与其它客户服务器程序最大的不同点就在于它在两台通信的主机之间使用了两条 TCP 连接,一条是数据连接,用于数据传送;另一条是控制连接,用于传送控制信息(命令和响应),这种将命令和数据分开传送的思想大大提高了 FTP 的效率,而其它客户服务器应用程序一般只有一条 TCP 连接。在整个交互的 FTP 会话中,控制连接始终是处于连接状态的,数据连接则在每一次文件传送时先打开后关闭

FTP客户端项目

    实现功能:

        登录

        pwd

        cd

        mkdir

        rmdir

        delete

        bye

        ls

        put

        get

    注意:发送的命令要以'\n'结尾,否则服务器无法识别

//  登录[15:06:06] [R] 正在连接到 47.97.229.46 -> IP=47.97.229.46 PORT=21[15:06:06] [R] 已连接到 47.97.229.46[15:06:06] [R] 220 (vsFTPd 3.0.2)//  发送用户名[15:06:06] [R] USER student[15:06:06] [R] 331 Please specify the password.//  发送密码[15:06:06] [R] PASS (hidden)[15:06:06] [R] 230 Login successful.[15:06:06] [R] OPTS UTF8 ON[15:06:06] [R] 200 Always in UTF8 mode.//  pwd[15:06:06] [R] PWD[15:06:06] [R] 257 "/home/student"//  ls//  开启PASV数据通道[15:06:06] [R] PASV[15:06:06] [R] 227 Entering Passive Mode (172,16,83,85,89,59).[15:06:06] [R] 正在打开数据连接 IP: 47.97.229.46 端口: 22843[15:06:06] [R] LIST -al[15:06:06] [R] 150 Here comes the directory listing.[15:06:06] [R] 226 Directory send OK.//  cd[15:06:15] [R] CWD C++2307-1[15:06:15] [R] 250 Directory successfully changed.//  mkdir[15:06:30] [R] MKD dir[15:06:30] [R] 257 "/home/student/C++2307-1/dir" created//  rmdir[15:06:41] [R] RMD dir[15:06:41] [R] 250 Remove directory operation successful.[15:07:36] [R] TYPE A[15:07:36] [R] 200 Switching to ASCII mode.[15:07:36] [R] SIZE network.h[15:07:36] [R] 213 913[15:07:36] [R] MDTM network.h[15:07:36] [R] 213 20230811033936//  get[15:07:36] [R] PASV[15:07:36] [R] 227 Entering Passive Mode (172,16,83,85,97,119).[15:07:36] [R] 正在打开数据连接 IP: 47.97.229.46 端口: 24951[15:07:36] [R] RETR network.h[15:07:36] [R] 150 Opening BINARY mode data connection for network.h (913 bytes).[15:07:36] [R] 226 Transfer complete.//  put[15:08:00] [R] PASV[15:08:00] [R] 227 Entering Passive Mode (172,16,83,85,39,64).[15:08:00] [R] 正在打开数据连接 IP: 47.97.229.46 端口: 10048[15:08:00] [R] STOR Linux环境编程day01.c[15:08:00] [R] 150 Ok to send data.[15:08:00] [R] 226 Transfer complete.[15:08:00] [R] MDTM 20230731085722 /home/student/Linux环境编程day01.c[15:08:00] [R] 213 File modification time set.//  delete 文件[15:08:15] [R] DELE Linux环境编程day01.c[15:08:15] [R] 250 Delete operation successful.[15:08:15] 已删除 1 个文件 和 0 个文件夹 (11 KB) 耗时 0.03 秒//  上传  断点续传[17:05:52] [R] TYPE I[17:05:52] [R] 200 Switching to Binary mode.[17:05:52] [R] SIZE 20221203_134016.mp4[17:05:52] [R] 550 Could not get file size.[17:05:52] [R] PASV[17:05:52] [R] 227 Entering Passive Mode (172,16,83,85,80,71).[17:05:52] [R] 正在打开数据连接 IP: 47.97.229.46 端口: 20551[17:05:52] [R] STOR 20221203_134016.mp4[17:05:52] [R] 150 Ok to send data.[17:05:57] (软中止 - 发送“ABOR”命令)[17:05:57] [R] 226 Transfer complete.[17:05:57] [R] QUIT[17:05:57] [R] 传输失败: 20221203_134016.mp4[17:05:57] [R] 已注销: 47.97.229.46 (持续时间: 54 秒)[17:05:57] 已传输 0 个文件 (0 字节) 耗时 5 秒 (0.0 KB/s)[17:05:57] 已被用户中止//  续传[17:06:51] [R] TYPE I[17:06:51] [R] 200 Switching to Binary mode.[17:06:51] [R] SIZE 20221203_134016.mp4[17:06:51] [R] 213 26083328[17:06:51] [R] MDTM 20221203_134016.mp4[17:06:51] [R] 213 20230814090557[17:06:51] [R] PASV[17:06:51] [R] 227 Entering Passive Mode (172,16,83,85,132,250).[17:06:51] [R] 正在打开数据连接 IP: 47.97.229.46 端口: 34042[17:06:51] [R] REST 26083328[17:06:51] [R] 350 Restart position accepted (26083328).[17:06:51] [R] STOR 20221203_134016.mp4[17:06:51] [R] 150 Ok to send data.[17:07:03] (软中止 - 发送“ABOR”命令)[17:07:03] [R] 226 Transfer complete.[17:07:04] [R] 传输失败: 20221203_134016.mp4 (50.63 MB / 415.36 MB) 耗时 11 秒 (4.47 MB/s)[17:07:04] 已传输 0 个文件 (0 字节) 耗时 12 秒 (0.0 KB/s)[17:07:04] 已被用户中止[17:07:10] [R] PASV[17:07:10] [R] 227 Entering Passive Mode (172,16,83,85,153,212).[17:07:10] [R] 正在打开数据连接 IP: 47.97.229.46 端口: 39380[17:07:10] [R] LIST -al[17:07:10] [R] 150 Here comes the directory listing.[17:07:10] [R] 226 Directory send OK.[17:07:10] [R] 列表完成: 1 KB 耗时 0.06 秒 (1.9 KB/s)[17:07:14] [R] SIZE 20221203_134016.mp4[17:07:14] [R] 213 79167488[17:07:14] [R] MDTM 20221203_134016.mp4[17:07:14] [R] 213 20230814090704[17:07:14] [R] PASV[17:07:14] [R] 227 Entering Passive Mode (172,16,83,85,134,255).[17:07:14] [R] 正在打开数据连接 IP: 47.97.229.46 端口: 34559[17:07:14] [R] REST 79167488[17:07:14] [R] 350 Restart position accepted (79167488).[17:07:14] [R] STOR 20221203_134016.mp4[17:07:14] [R] 150 Ok to send data.[17:07:23] (软中止 - 发送“ABOR”命令)[17:07:23] [R] 226 Transfer complete.[17:07:24] [R] 传输失败: 20221203_134016.mp4 (42.13 MB / 415.36 MB) 耗时 9 秒 (4.65 MB/s)[17:07:24] 已传输 0 个文件 (0 字节) 耗时 10 秒 (0.0 KB/s)[17:07:24] 已被用户中止

ps:代码晚点附上

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/63535.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C# 多线程交替按照指定顺序执行

1.关于AutoResetEvent和ManualResetEvent的区别解释如下: AutoResetEvent和ManualResetEvent是.NET中的两个线程同步类。它们之间的主要区别在于其释放信号的方式以及对等待线程的影响。 AutoResetEvent的作用是在等待的线程被信号唤醒后,将信号自动重…

TLS-对称加密和非对称加密

对称加密算法和非对称加密算法 对称加密算法就是使用对称密钥对数据加密的算法; 非对称加密算法就是使用公钥加密,私钥解密的加密算法。 对称密钥又是如何生成的 TLS的四次握手过程 第一次: 1,TLS的版本,2&#xf…

Rust 学习笔记(持续更新中…)

一、 编译和运行是单独的两步 运行 Rust 程序之前必须先编译,命令为:rustc 源文件名 - rustc main.rs编译成功之后,会生成一个二进制文件 - 在 Windows 上还会生产一个 .pdb 文件 ,里面包含调试信息Rust 是 ahead-of-time 编译的…

cuda编程常见问题

cuda环境配置 参考链接 https://blog.csdn.net/weixin_43788327/article/details/125823507?spm1001.2014.3001.5506 疑难问题 在学习《GPU高性能编程CUDA实战》这本书时,发现书里面的代码很多变量都没定义过,经过搜索发现这都是书上自带的代码。 代…

数据库-DML

DML:用来对数据库中表的数据记录进行增、删、改等操作。 添加数据(INSERT) insert语法: 指定字段添加数据:insert into 表单(字段名1,字段名2)values(值1,值…

CSS中如何实现弹性盒子布局(Flexbox)的换行和排序功能?

聚沙成塔每天进步一点点 ⭐ 专栏简介⭐ 换行(Flexbox Wrapping)⭐ 示例:实现换行⭐ 排序(Flexbox Ordering)⭐ 示例:实现排序⭐ 写在最后 ⭐ 专栏简介 前端入门之旅:探索Web开发的奇妙世界 记得…

分布式集群框架——有关zookeeper的面试考点

3.掌握Zookeeper的概念 当涉及到大规模分布式系统的协调和管理时,Zookeeper是一个非常重要的工具。 1. 分布式协调服务:Zookeeper是一个分布式协调服务,它提供了一个高可用和高性能的环境,用于协调和同步分布式系统中的各个节点…

Java中支持分库分表的框架/组件/中间件简介

文章目录 1 sharding-jdbc2 TSharding3 Atlas4 Cobar5 MyCAT6 TDDL7 Vitess 列举一些比较常见的,简单介绍一下: sharding-jdbc(当当) TSharding(蘑菇街) Atlas(奇虎360) Cobar&#…

X5R 和 X7R 电容的定义与区别

1. 定义 采用 字母 - 数字 - 字母 格式电容材质定义用于2 类和 3 类电介质的电容器。X5R 和 X7R属于 2 类,Y5V 属于 3 类。 2. 区别 在 字母 - 数字 - 字母 格式定义下,X5R 和 X7R 材质的区别如下: 第一个字符表示电容器可以承受的最低温…

k8s(kubernetes)介绍篇

一、Kubernetes 是什么 Kubernetes 是一个全新的基于容器技术的分布式架构解决方案,是 Google 开源的一个容器集群管理系统,Kubernetes 简称 K8S。 Kubernetes 是一个一站式的完备的分布式系统开发和支撑平台,更是一个开放平台,对…

面试题--从键盘输入网站到网页显示,之间发生了什么

文章目录 首先进入HTTP阶段协议栈阶段TCP阶段IP阶段MAC网卡交换机路由器抵达 首先进入HTTP阶段 1.解析对应的URL,访问一个对应的服务器xxx.com的一个文件index.html; 2 使用DNS查询对应的ip地址,通过DNS服务器进行查找 3 组装http报文,生成h…

低成本32位单片机电动工具无感方波控制方案

RAMSUN介绍基于灵动32位微处理器MM32SPIN0230的BLDC电动工具无感方波控制方案,包括MM32SPIN0230芯片资源。 以下是电动工具无感方波控制方案的简述: MM32SPIN0230电动工具专用板 芯片介绍 MM32SPIN0230系列是灵动微MindSPIN旗下高性能的单电机控制产品…

Spring Boot框架以及它的优势

文章目录 介绍1. **简化配置**2. **快速启动**3. **自动配置**4. **集成第三方库和框架**5. **微服务支持**6. **内嵌式数据库支持**7. **健康监控和管理**8. **可插拔的开发工具**9. **丰富的社区和生态系统**10. **良好的测试支持:** 核心特性**1. 依赖注入&#…

ElasticSearch学习4--复杂查询

1、查询分类 查询所有:查询出所有数据,一般测试用。例如:match_all全文检索(full text)查询:利用分词器对用户输入内容分词,然后去倒排索引库中匹配。例如: match_query 根据单个字段…

yolov8机器视觉-工业质检

使用训练好的模型进行预测 yolo predict taskdetect model训练好的模型路径 source测试图片文件夹路径 showTrue效果展示 切换模型进行训练(yolov8s) 修改main.py训练参数文件 使用云gpu进行训练,很方便:点击链接转至在线云gpu…

面试被打脸,数据结构底层都不知道么--回去等通知吧

数据结构之常见的8种数据结构: -数组Array -链表 Linked List -堆 heap -栈 stack -队列 Queue -树 Tree -散列表 Hash -图 Graph 数据结构-链表篇 Linklist定义: -是一种线性表,并不会按线性的顺序存储数据,即逻辑上相邻…

初识PHP编程:探索Web开发的起点

初识PHP编程:探索Web开发的起点 PHP(Hypertext Preprocessor)是一种广泛使用的服务器端脚本语言,专门用于Web开发。它的强大功能和简单易学的语法使得它成为初学者和专业开发者的首选。在本文中,我们将探索什么是PHP&…

【算法竞赛宝典】语言之争

【算法竞赛宝典】语言之争 题目描述代码展示 题目描述 代码展示 //语言之争 #include<fstream> #include<string>using namespace std;ifstream cin("language.in"); ofstream cout("language.out");string a; int n;int main() {int i;bool …

短信验证码服务

使用的是 阿里云 阿里云官网 1.找到 左上角侧边栏 -云通信 -短信服务 2.在快速学习测试处 &#xff0c;按照步骤完成快速学习&#xff0c;绑定要测试的手机号&#xff0c;选专用 【测试模板】&#xff0c;自定义模板需要人工审核&#xff0c;要一个工作日 3.右上角 获取 Acces…

敦煌网、newegg店铺优化三大方法,测评补单原来可以这样做

我们都知道敦煌网、newegg流量是一个店铺的血液&#xff0c;没有流量的支撑&#xff0c;其他也都将成为浮云。流量能够成为转化率的保证&#xff0c;如何让店铺拥有傲人的流量成为重要之重&#xff0c;店铺的流量又主要来源于以下几部分&#xff1a; 一、主要流量的来源 1.搜索…