01 ftp上傳簡單示例服務端
阿新 • • 發佈:2019-01-07
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)