01 ftp上传简单示例客户端

Posted work14

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了01 ftp上传简单示例客户端相关的知识,希望对你有一定的参考价值。

import os
import socket
import json
import struct
client = socket.socket()
client.connect((127.0.0.1,8001))

#统计文件大小
file_size = os.path.getsize(rD:python_workspace_s18day029aaa.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上传简单示例客户端的主要内容,如果未能解决你的问题,请参考以下文章

java Ftp上传创建多层文件的代码片段

python之路——作业:开发简单的FTP

ftp上传小示例

ruby 使用Ruby Net :: FTP库的示例代码。登录FTP服务器,列出文件,检查目录是否存在,上传文件

ftp上传单一文件示例

ftp上传单一文件示例