zoukankan      html  css  js  c++  java
  • socket上传文件

    server.py文件

    #!/usr/bin/env python
    #coding:utf-8
    #上传文件(至服务器)
    import SocketServer,os
    class MyServer(SocketServer.BaseRequestHandler):
        def handle(self):
            base_path = r'C:Users91135Desktop	est'
            conn = self.request
            print 'has connected!'
            while True:
                pre_data = conn.recv(1024)
                cmd,file_name,file_size = pre_data.split('/')#获取请求方法、文件名和文件大小(整数,以字节为单位) 
                recv_size = 0#已经接收文件的大小(以字节为单位)
                file_dir = os.path.join(base_path,file_name)#上传文件路径拼接
                f = file(file_dir,'wb')
                Flag = True
                while Flag:
                    if int(file_size)>recv_size:#未上传完毕
                        data = conn.recv(1024)#最多接收1024,可能接收的小于1024
                        recv_size+=len(data)
                        f.write(data)#写入文件
                    else:#上传完毕,则退出循环
                        #recv_size = 0
                        Flag = False
                print 'upload successed.'
                f.close()
    instance = SocketServer.ThreadingTCPServer(('127.0.0.1',9999),MyServer)
    instance.serve_forever()
    

    client.py文件

    #!/usr/bin/env python
    #coding:utf-8
    import socket,os
    ip_port = ('127.0.0.1',9999)
    sk = socket.socket()
    sk.connect(ip_port)
    #container = {'key':'','data':''}
    while True:
        input = raw_input('cmd and path:')#cmd和path之间用'/'分割
        cmd,path = input.split('/') 
        file_name = os.path.basename(path)
        file_size=os.stat(path).st_size
        sk.send(cmd+"/"+file_name+'/'+str(file_size))
        send_size = 0
        f= file(path,'rb')
        Flag = True
        while Flag:
            if send_size + 1024 >=file_size:
                data = f.read(file_size-send_size)
                Flag = False
            else:
                data = f.read(1024)
                send_size+=1024
            sk.send(data)
        f.close()
    sk.close()
    

      

  • 相关阅读:
    websocket介绍
    阿里支付接口
    王爽 汇编 检测点 14.2
    如何用汇编写出一个心形图像
    王爽 汇编 实验12
    王爽 汇编 实验11
    王爽 汇编 实验10
    王爽汇编 检测点10.5
    二元选择排序
    螺旋矩阵
  • 原文地址:https://www.cnblogs.com/noticeable/p/15138186.html
Copyright © 2011-2022 走看看