zoukankan      html  css  js  c++  java
  • 01 ftp上传简单示例服务端

    import json
    import socket
    import struct
    
    server = socket.socket()
    server.bind(('127.0.0.1',8001))
    server.listen()
    conn,addr = server.accept()
    
    #首先接收文件的描述信息的长度
    struct_data_len = conn.recv(4)
    data_len = struct.unpack('i',struct_data_len)[0]
    
    # 通过文件信息的长度将文件的描述信息全部接收
    print('data_len>>>',data_len)
    file_info_bytes = conn.recv(data_len)
    #将文件描述信息转换为字典类型,以便操作
    file_info_json = file_info_bytes.decode('utf-8')
    file_info_dict = json.loads(file_info_json) #{'file_name': 'aaa.mp4', 'file_size': 24409470}
    
    print(file_info_dict)
    
    #统计每次接收的累计长度
    recv_sum = 0
    
    #根据文件描述信息,指定文件路径和文件名称
    file_path = 'D:s18jj' + '\' + file_info_dict['file_name']
    
    #接收文件的真实数据
    with open(file_path,'wb') as f:
        #循环接收,循环结束的依据是文件描述信息中文件的大小,也是通过一个初始值为0的变量来统计
        while recv_sum < file_info_dict['file_size']:
            every_recv_data = conn.recv(1024)
            recv_sum += len(every_recv_data)
            f.write(every_recv_data)
  • 相关阅读:
    P4549 【模板】裴蜀定理
    POJ1606 Jugs
    2. 数据库连接池规范
    14. BootStrap * 组件
    BootStarpt
    13. Flex 弹性布局2 BootStrap
    12. Flex 弹性布局 BootStrap
    CSS3
    21. Servlet3.0 / 3.1 文件上传 Plus
    20. Servlet3.0 新特性
  • 原文地址:https://www.cnblogs.com/work14/p/10235888.html
Copyright © 2011-2022 走看看