分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

01 ftp上传简单示例客户端

发布时间:2023-09-06 02:29责任编辑:熊小新关键词:暂无标签
import osimport socketimport jsonimport structclient = socket.socket()client.connect((‘127.0.0.1‘,8001))#统计文件大小file_size = os.path.getsize(r‘D:\python_workspace_s18\day029\aaa.mp4‘)#统计文件描述信息,给服务端,服务端按照我的文件描述信息来保存文件,命名文件等等,现在放到一个字典里面了file_info = { ???‘file_name‘:‘aaa.mp4‘, ???‘file_size‘:file_size,}#由于字典无法直接转换成bytes类型的数据,所以需要json来将字典转换为json字符串.在把字符串转换为字节类型的数据进行发送#json.dumps是将字典转换为json字符串的方法file_info_json = json.dumps(file_info)#将字符串转换成bytes类型的数据file_info_byte = file_info_json.encode(‘utf-8‘)#为了防止黏包现象,将文件描述信息的长度打包后和文件的描述信息的数据一起发送过去data_len = len(file_info_byte)data_len_struct = struct.pack(‘i‘,data_len)#发送文件描述信息client.send(data_len_struct + file_info_byte)#定义一个变量,=0,作为每次读取文件的长度的累计值sum = 0#打开的aaa.mp4文件,rb的形式,with open(‘aaa.mp4‘,‘rb‘) as f: ???#循环读取文件内容 ???while sum < file_size: ???????#每次读取的文件内容,每次读取1024B大小的数据 ???????every_read_data = f.read(1024) ???????#将sum累加,统计长度 ???????sum += len(every_read_data) ???????#将每次读取的文件的真实数据返送给服务端 ???????client.send(every_read_data)

01 ftp上传简单示例客户端

原文地址:https://www.cnblogs.com/work14/p/10235883.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved