server.py
#——author:"Jay Zhu"
#date: 2018/7/5
import socket
import os
sk = socket.socket()
address = ('127.0.0.1',8000)
sk.bind(address)
sk.listen(3)
print('waiting')
BASE_DIR = os.path.dirname(os.path.abspath(__file__))
while 1:
conn, addr = sk.accept()
while 1:
date = conn.recv(1024)
cmd,filename,filesize=str(date,'utf8').split('|')
path = os.path.join(BASE_DIR,'yuan',filename)
print(path)
filesize =int(filesize)
f = open(path,'ab')
has_sent = 0
while has_sent != filesize:
data = conn.recv(1024)
f.write(data)
has_sent+=len(data)
sk.close()
client.py
#——author:"Jay Zhu"
#date: 2018/7/5
import socket
import os
sk = socket.socket()
address = ('127.0.0.1',8000)
sk.connect(address)
BASE_DIR = os.path.dirname(os.path.abspath(__file__)) #上层文件路径。
while True:
inp = input('>>>')#post|11.png
cmd,path=inp.split('|')
path = os.path.join(BASE_DIR,path) #拼接完整目录
filename = os.path.basename(path)
file_size = os.stat(path).st_size #获取文件大小
file_info = 'post|%s|%s'%(filename,file_size) #打包
sk.sendall(bytes(file_info,'utf8')) #编码
f = open(path,'rb')
has_sent = 0
while has_sent != file_size:
data = f.read(1024)
sk.sendall(data)
has_sent += len(data)
f.close()
print("上传成功")
sk.close()