# -*- coding: cp936 -*- import socket import win32com.client import os import zipfile import codecs import base64 def main(): HOST = '127.0.0.1' PORT = 2000 BUF_SIZE = 6553500 #6M key = 'ouyang' timeout = 5 dicName = "ouyang\\" ss = socket.socket(socket.AF_INET,socket.SOCK_STREAM) try: ss.bind((HOST,PORT)) ss.listen(5) print "wating for conntecting..." while True: try: cs,addr = ss.accept() socket.setdefaulttimeout(timeout) cs.send("200 Connected!") #获取加密数据 encode_data = cs.recv(BUF_SIZE) #把数据写到out.zip文件 tmpfile = open('out.tmp','wb') try: tmpfile.write(encode_data) tmpfile.close() except IOError,e: print 'Strange error creating IOError:%s' % e tmpfile.close() finally: tmpfile.close() #base64 decode 2进制 解密 decode(infile,outfile) tmpfile = open('out.tmp','rb') outfile = open('out.zip','wb') base64.decode(tmpfile,outfile) tmpfile.close() outfile.close() #打开zip文件 zfile = zipfile.ZipFile('out.zip','r') #创建一个文件夹来存放获取的zip文件 if not os.path.exists(dicName): os.mkdir(dicName) for f in zfile.namelist(): data = zfile.read(f) file = open(dicName+os.path.basename(f),'w+b') file.write(data) file.close() print "finished!!!" zfile.close() #后续处理 删除临时文件 os.remove('out.tmp') cs.close() except socket.error, e: print 'Strange error creating socket:%s' % e cs.close() ss.close() except socket.error, e: print 'Strange error creating socket:%s' % e ss.close() if __name__=='__main__': main() #//python/8749