1. 程式人生 > >01 ftp上傳簡單示例服務端

01 ftp上傳簡單示例服務端

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)