网络编程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:代码晚点附上
相关文章:
网络编程day3-FTP客户端项目
FTP协议 FTP 的独特的优势同时也是与其它客户服务器程序最大的不同点就在于它在两台通信的主机之间使用了两条 TCP 连接,一条是数据连接,用于数据传送;另一条是控制连接,用于传送控制信息(命令和响应)&…...

音频母带制作::AAMS V4.0 Crack
自动音频母带制作简介。 使用 AAMS V4 让您的音乐听起来很美妙! 作为从事音乐工作的音乐家,您在向公众发布材料时需要尽可能最好的声音,而为所有音频扬声器系统提供良好的商业声音是一项困难且耗时的任务。AI掌握的力量! 掌控您…...

【SpringCloud】SpringCloud整合openFeign
文章目录 前言1. 问题分析2. 了解Feign3. 项目整合Feign3.1 引入依赖3.2 添加注解3.3 编写Feign客户端3.4 测试3.5 总结 4. 自定义配置4.1 配置文件方式4.2 Java代码方式 5. Feign使用优化5.1 引入依赖5.2 配置连接池 6. Feign最佳实践6.1 继承方式6.2 抽取方式 前言 微服务远…...

成集云 | 飞书审批同步金蝶云星空 | 解决方案
源系统成集云目标系统 方案介绍 飞书员工报销审批通过后,审批单据内容和审批状态实时同步金蝶云星空 飞书是字节跳动于2016年自研的新一代一站式协作平台,将即时沟通、日历、云文档、云盘和工作台深度整合,通过开放兼容的平台,…...

【计算机组成 课程笔记】3.2 算数运算和逻辑运算的硬件实现
课程链接: 计算机组成_北京大学_中国大学MOOC(慕课) 3 - 2 - 302-门电路的基本原理(11-39--)_哔哩哔哩_bilibili 现代计算机的CPU和其他很多功能部件都是基于晶体管的集成电路,想要了解计算机组成的基本原理,还是需要有…...
python元组的不可变性和应用场景
Python元组是一种不可变的数据类型,也就是说一旦创建后,其元素无法被修改、添加或删除。元组使用圆括号来表示,元素之间使用逗号进行分隔。 以下是创建和访问元组的方法和语法: 创建元组: 使用圆括号直接创建ÿ…...
配置化开发的核心设计 - Schema
前端配置化SchemaServerless FaaS BaaS useImperativeHandle() react-helmet 参考链接 schema进入...

HTTP协议概述
HTTP 协议定义 HTTP协议,直译为超文本传输协议,是一种用于分布式、协作、超媒体的信息系统的应用协议。HTTP协议是万维网数据通信的基础。HTTP协议在客户端-服务器计算模型中充当请求-响应协议。客户端向服务器提交HTTP请求消息。服务器提供HTML文件和其…...
fastjson2 打开 AutoType
1. 功能简介 FASTJSON支持AutoType功能,这个功能在序列化的JSON字符串中带上类型信息,在反序列化时,不需要传入类型,实现自动类型识别。 2. AutoType安全机制介绍 必须显式打开才能使用。和fastjson 1.x不一样,fast…...

封装(个人学习笔记黑马学习)
1、格式 #include <iostream> using namespace std;const double PI 3.14;//设计一个圆类,求圆的周长 class Circle {//访问权限//公共权限 public://属性//半径int m_r;//行为//获取圆的周长double calculateZC() {return 2 * PI * m_r;} };int main() {//通…...

PyTorch 模型性能分析和优化 - 第 3 部分
这[1]是关于使用 PyTorch Profiler 和 TensorBoard 分析和优化 PyTorch 模型主题的系列文章的第三部分。我们的目的是强调基于 GPU 的训练工作负载的性能分析和优化的好处及其对训练速度和成本的潜在影响。特别是,我们希望向所有机器学习开发人员展示 PyTorch Profi…...

【力扣每日一题】2023.9.1 买钢笔和铅笔的方案数
目录 题目: 示例: 分析: 代码: 题目: 示例: 分析: 题目给我们三个数,一个是我们拥有的钱,一个是钢笔的价格,另一个是铅笔的价格。 问我们一共有几种买笔…...

实现不同局域网间的文件共享和端口映射,使用Python自带的HTTP服务
文章目录 1. 前言2. 本地文件服务器搭建2.1 python的安装和设置2.2 cpolar的安装和注册 3. 本地文件服务器的发布3.1 Cpolar云端设置3.2 Cpolar本地设置 4. 公网访问测试5. 结语 1. 前言 数据共享作为和连接作为互联网的基础应用,不仅在商业和办公场景有广泛的应用…...
Kubernetes技术--k8s核心技术Pod
(1).概述 Pod 是 k8s 系统中可以创建和管理的最小单元,是资源对象模型中由用户创建或部署的最小资源对象模型。 k8s不会直接处理容器,而是 Pod,Pod 是由一个或多个 container 组成。 一个pod中的容器共享网络命名空间。 Pod是一个短暂存在的。 (2).为什么k8s中最小单元是…...

基于Springboot实现的Echarts图表
概述 ECharts是百度开源的一个前端组件。它是一个使用 JavaScript 实现的开源可视化库,可以流畅的运行在 PC 和移动设备上,兼容当前绝大部分浏览器(IE8/9/10/11,Chrome,Firefox,Safari等)&…...
adb server version (41) doesn‘t match this client (39)
异常: adb server version (41) doesnt match this client (39); killing... ADB server didnt ACK安装ADB后:查看版本 $ adb version Android Debug Bridge version 1.0.39 Version 1:8.1.1-1r23-5.4-1eagle Installed as /usr/lib/android-sdk/platf…...

B080-RabbitMQ
目录 RabbitMQ认识概念使用场景优点AMQP协议JMS RabbitMQ安装安装elang安装RabbitMQ安装管理插件登录RabbitMQ消息队列的工作流程 RabbitMQ常用模型HelloWorld-基本消息模型生产者发送消息导包获取链接工具类消息的生产者 消费者消费消息模拟消费者手动签收消息 Work QueuesSen…...

关于岛屿的三道leetcode原题:岛屿周长、岛屿数量、统计子岛屿
题1:岛屿周长 给定一个 row x col 的二维网格地图 grid ,其中:gridi 1 表示陆地, gridi 0 表示水域。 网格中的格子 水平和垂直 方向相连(对角线方向不相连)。整个网格被水完全包围,但其中恰…...
lintcode 1081 · 贴纸拼单词【hard 递归+记忆化搜索才能通过】
题目 https://www.lintcode.com/problem/1081/ 给出N种不同类型的贴纸。 每个贴纸上都写有一个小写英文单词。 通过裁剪贴纸上的所有字母并重排序来拼出字符串target。 每种贴纸可以使用多次,假定每种贴纸数量无限。 拼出target最少需要多少张贴纸?如果…...

HarmonyOS/OpenHarmony(Stage模型)应用开发单一手势(二)
三、拖动手势(PanGesture) .PanGestureOptions(value?:{ fingers?:number; direction?:PanDirection; distance?:number}) 拖动手势用于触发拖动手势事件,滑动达到最小滑动距离(默认值为5vp)时拖动手势识别成功&am…...
RestClient
什么是RestClient RestClient 是 Elasticsearch 官方提供的 Java 低级 REST 客户端,它允许HTTP与Elasticsearch 集群通信,而无需处理 JSON 序列化/反序列化等底层细节。它是 Elasticsearch Java API 客户端的基础。 RestClient 主要特点 轻量级ÿ…...

Vue2 第一节_Vue2上手_插值表达式{{}}_访问数据和修改数据_Vue开发者工具
文章目录 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染2. 插值表达式{{}}3. 访问数据和修改数据4. vue响应式5. Vue开发者工具--方便调试 1.Vue2上手-如何创建一个Vue实例,进行初始化渲染 准备容器引包创建Vue实例 new Vue()指定配置项 ->渲染数据 准备一个容器,例如: …...
Java + Spring Boot + Mybatis 实现批量插入
在 Java 中使用 Spring Boot 和 MyBatis 实现批量插入可以通过以下步骤完成。这里提供两种常用方法:使用 MyBatis 的 <foreach> 标签和批处理模式(ExecutorType.BATCH)。 方法一:使用 XML 的 <foreach> 标签ÿ…...

NXP S32K146 T-Box 携手 SD NAND(贴片式TF卡):驱动汽车智能革新的黄金组合
在汽车智能化的汹涌浪潮中,车辆不再仅仅是传统的交通工具,而是逐步演变为高度智能的移动终端。这一转变的核心支撑,来自于车内关键技术的深度融合与协同创新。车载远程信息处理盒(T-Box)方案:NXP S32K146 与…...
作为测试我们应该关注redis哪些方面
1、功能测试 数据结构操作:验证字符串、列表、哈希、集合和有序的基本操作是否正确 持久化:测试aof和aof持久化机制,确保数据在开启后正确恢复。 事务:检查事务的原子性和回滚机制。 发布订阅:确保消息正确传递。 2、性…...

Proxmox Mail Gateway安装指南:从零开始配置高效邮件过滤系统
💝💝💝欢迎莅临我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:「storms…...
区块链技术概述
区块链技术是一种去中心化、分布式账本技术,通过密码学、共识机制和智能合约等核心组件,实现数据不可篡改、透明可追溯的系统。 一、核心技术 1. 去中心化 特点:数据存储在网络中的多个节点(计算机),而非…...
面试高频问题
文章目录 🚀 消息队列核心技术揭秘:从入门到秒杀面试官1️⃣ Kafka为何能"吞云吐雾"?性能背后的秘密1.1 顺序写入与零拷贝:性能的双引擎1.2 分区并行:数据的"八车道高速公路"1.3 页缓存与批量处理…...

Mac flutter环境搭建
一、下载flutter sdk 制作 Android 应用 | Flutter 中文文档 - Flutter 中文开发者网站 - Flutter 1、查看mac电脑处理器选择sdk 2、解压 unzip ~/Downloads/flutter_macos_arm64_3.32.2-stable.zip \ -d ~/development/ 3、添加环境变量 命令行打开配置环境变量文件 ope…...
精益数据分析(98/126):电商转化率优化与网站性能的底层逻辑
精益数据分析(98/126):电商转化率优化与网站性能的底层逻辑 在电子商务领域,转化率与网站性能是决定商业成败的核心指标。今天,我们将深入解析不同类型电商平台的转化率基准,探讨页面加载速度对用户行为的…...