客户端
import os import json import struct import socket sk = socket.socket() sk.connect(('127.0.0.1',8000)) def get_filename(file_path): return os.path.basename(file_path) operate = ['upload','download'] for num, opt in enumerate(operate,1): print(num, opt) num = int(input("请输入您要做的操作号:")) if num == 1: file_path = input("请输入要上传的文件路径:") file_size = os.path.getsize(file_path) file_name = get_filename(file_path) # 构建字典 dic = {'operate':'upload','filename':file_name,'filesize':file_size} # 序列化为字符串 进行传输 str_dic = json.dumps(dic).encode('utf-8') ret = struct.pack('i',len(str_dic)) # 把序列化后的字典大小转换成一个4字节的数 sk.send(ret) sk.send(str_dic) with open(file_path, 'rb') as f: while file_size: content = f.read(1024) sk.send(content) file_size -= len(content) elif num == 2: """下载""" pass sk.close()