服务端2
#coding=utf-8
#FTPserver
'''
1.讀取文件名
2.檢測文件是否存在
3.打開文件
4、檢測文件大小
5、發送文件大小給客戶端
6.等到客戶端確認
7、開始邊讀邊發數據
8、發送MD5
'''
import socket
import os
import hashlibserver = 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],ebreakprint '執行指令:',datacmd,filename = data.split()print '要下載的文件是:',filenameif os.path.isfile(filename):f = open(filename,'rb')m = hashlib.md5()file_size = os.stat(filename).st_sizecon1.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()
?
轉載于:https://www.cnblogs.com/qiangayz/p/8606565.html
總結
- 上一篇: bzoj 4488: [Jsoi2015
- 下一篇: eclipse常用设置之自动格式化