#coding=utf-8 #FTPserver ''' 1.读取文件名 2.检测文件是否存在 3.打开文件 4、检测文件大小 5、发送文件大小给客户端 6.等到客户端确认 7、开始边读边发数据 8、发送MD5 ''' import socket import os import hashlib server = socket.socket() #创建实例 server.bind(('localhost',6969)) #绑定要监听的端口 server.listen(2) #开始监听 while True: #第一层循环 print '开始接听了' con1,addr =server.accept() #等连接接入,con1就是客户端连入,而在服务器端为其生成的连接实例 print '%s is connect'%addr[0] while True: print '等待命令输入' try: data = con1.recv(1024) # if not data: # print '%s 客户端断开了'%addr[0] except socket.error as e: print '%s 客户端断开了'%addr[0],e break print '执行指令:',data cmd,filename = data.split() print '要下载的文件是:',filename if os.path.isfile(filename): f = open(filename,'rb') m = hashlib.md5() file_size = os.stat(filename).st_size con1.send(str(file_size)) con1.recv(1024) #等待确认收到文件大小 for line in f: m.update(line) con1.send(line) print '文件的MD5值:',m.hexdigest() f.close() con1.send(m.hexdigest()) #发送文件的MD5值 print '传输文件完成了' server.close()