zoukankan      html  css  js  c++  java
  • python 上传下载文件

    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()
  • 相关阅读:
    海康SDK/大华SDK协议视频智能分析平台EasyCVR播放器界面滚动条属性优化分享
    TSINGSEE青犀视频EasyCVR视频融合共享平台兼容性再扩展,大华SDK轻松接入
    海康SDK/大华SDK安防视频智能分析平台EasyCVR如何将通道视频流推送至CDN分发?
    迭代器和生成器
    内置函数
    递归函数
    函数进阶------闭包函数
    装饰器
    函数
    经典100厘
  • 原文地址:https://www.cnblogs.com/fengjian2016/p/5257346.html
Copyright © 2011-2022 走看看