您的位置:首页 > 编程语言 > Python开发

python 上传下载文件

2016-03-09 11:11 603 查看
server.py

#!/usr/bin/env python
# -*- coding:utf-8 -*-
import SocketServer
import os

class MySocketServer(SocketServer.BaseRequestHandler):

def handle(self):
filename_dir = '/home/feng/feng'
conn = self.request
data = conn.recv(1024)
filename,filename_size = data.strip().split('|')

print filename,filename_size

recv_size = 0

file_dir=os.path.join(filename_dir,filename)

f = open(file_dir,'w+')

while True:
if int(filename_size) != recv_size :
data = conn.recv(1024)
recv_size += len(data)
print int(filename_size),recv_size
f.write(data)
else:
break
# else:
#     data = conn.recv(int(filename_size) - recv_size)
#     print int(filename_size) - recv_size
#     break
print 'upload successed.......'

if  __name__ == '__main__':
ip_port = ('127.0.0.1',55555)
server = SocketServer.ThreadingTCPServer(ip_port,MySocketServer)
server.serve_forever()

=======================================
client.py
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import socket
import os

client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
ip_port = ('127.0.0.1',55555)
client.connect(ip_port)

while True:
filepath = raw_input('请输入方法和上传路径:/root/1.txt:  ')
filename_size = os.stat(filepath).st_size
filename = os.path.basename(filepath)

print '#####################'
print filepath,filename_size
print '#####################'

client.send(filename + '|' + str(filename_size))
send_size = 0

f = open(filepath,'r')

Flag = True
while Flag:
if filename_size != send_size:
data = f.read(1024)
send_size += len(data)
client.send(data)
else:
Flag=False
f.close()
client.close()
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: