简单的文件ftp上传

简单的文件ftp上传

  • server

    import socket
    import struct
    service=socket.socket()
    
    service.bind(('127.0.0.1',8081))
    while True:
        service.listen(5)
    
        conn,address=service.accept()
        print('有客户端连接进来了,地址如下',address)
        #获取头的内容
        dic_len_byte=conn.recv(4)
        print(dic_len_byte)
        dic_len=struct.unpack('i',dic_len_byte)[0]
        print(dic_len)
        dic_head=eval(conn.recv(dic_len))
        data=conn.recv(dic_head['size'])
        data_name=dic_head['name']
        # print(data.decode('utf8'))
        with open(data_name,'wb') as fw:
            fw.write(data)
    
  • client

    import socket
    import struct
    client=socket.socket()
    client.connect(('127.0.0.1', 8081))
    import os
    import json
    
    print(os.path.getsize('test.py'))
    data_head={'size':os.path.getsize('test.py'),'name':'test_new.py'}
    data_head_s=json.dumps(data_head)
    data_head_bytes=data_head_s.encode('utf8')
    print(data_head_bytes)
    #把头的长度以长度为4的字节发送过去
    head_len_bytes=struct.pack('i',len(data_head_bytes))
    client.send(head_len_bytes)
    client.send(data_head_bytes)
    with open('test.py','rb') as fr:
        data=fr.read()
    client.send(data)
    
    
  • 测试文件

    import json
    ss={'name':'ypp','age':False}
    data=json.dumps(ss) #转json字典为字符串(json格式)
    
    print(data)
    print(type(data))
    data1=json.loads(data)#字符串的json格式的字典  转为字典
    print(data1)
    print(type(data1))
    sss=b'kkk\n\nkk'
    print(str(sss.decode('utf8')))
    
posted @ 2019-09-09 16:02  得淼  阅读(212)  评论(0编辑  收藏  举报