码迷,mamicode.com
首页 > Web开发 > 详细

01 ftp上传简单示例服务端

时间:2019-01-07 22:44:49      阅读:211      评论:0      收藏:0      [点我收藏+]

标签:load   recv   mp4   size   utf-8   port   import   文件名   文件信息   

import json
import socket
import struct

server = socket.socket()
server.bind((127.0.0.1,8001))
server.listen()
conn,addr = server.accept()

#首先接收文件的描述信息的长度
struct_data_len = conn.recv(4)
data_len = struct.unpack(i,struct_data_len)[0]

# 通过文件信息的长度将文件的描述信息全部接收
print(data_len>>>,data_len)
file_info_bytes = conn.recv(data_len)
#将文件描述信息转换为字典类型,以便操作
file_info_json = file_info_bytes.decode(utf-8)
file_info_dict = json.loads(file_info_json) #{file_name: aaa.mp4, file_size: 24409470}

print(file_info_dict)

#统计每次接收的累计长度
recv_sum = 0

#根据文件描述信息,指定文件路径和文件名称
file_path = D:\s18\jj + \\ + file_info_dict[file_name]

#接收文件的真实数据
with open(file_path,wb) as f:
    #循环接收,循环结束的依据是文件描述信息中文件的大小,也是通过一个初始值为0的变量来统计
    while recv_sum < file_info_dict[file_size]:
        every_recv_data = conn.recv(1024)
        recv_sum += len(every_recv_data)
        f.write(every_recv_data)

 

01 ftp上传简单示例服务端

标签:load   recv   mp4   size   utf-8   port   import   文件名   文件信息   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!