client
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#!usr/bin/evn python # -*- coding:utf-8 -*- import socket import os sk=socket.socket() print(sk) address=('127.0.0.1',8888) sk.connect(address) BASE_DIR=os.path.dirname(os.path.abspath(__file__)) print(BASE_DIR) ret=os.path.abspath(__file__) ipt=input('>>>').strip() cmd,path=ipt.split('|') path=os.path.join(BASE_DIR,path) filename=os.path.basename(path) file_size=os.stat(path).st_size file_info='%s|%s|%s'% (cmd,filename,file_size) sk.sendall(bytes(file_info, 'utf8')) has_sent = 0 data = bytes() path=os.path.join(BASE_DIR,filename) with open(path, 'rb') as rf: while has_sent != file_size: content=rf.read(1024) sk.sendall(content) has_sent+=len(content) sk.close()
server
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
#!usr/bin/evn python # -*- coding:utf-8 -*- import socket,os BASE_DIR=os.path.dirname(os.path.abspath(__file__)) sk=socket.socket() addrs=('127.0.0.1',8888) sk.bind(addrs) sk.listen(5) while 1: conn,addr=sk.accept() while 1: data=conn.recv(1024) cmd,filename,file_size=str(data,'utf8').split('|') has_recv=0 path=os.path.join(BASE_DIR,filename) with open(path,'ab') as af: while has_recv!=file_size: data_rev=conn.recv(1024) af.write(data_rev) has_recv+=len(data_rev) sk.close()