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

    #-------server层
    import socket
    import json
    sk=socket.socket()
    sk.bind(('10.70.2.143',8080))
    sk.listen()
    conn,addr=sk.accept()
    #通信
    str_dic=conn.recv(9090).decode('utf-8')
    #将字符串形式反序列化为字典
    dic=json.loads(str_dic)
    if dic['opt']=='upload':
        filename='1'+dic['filename']
        with open (filename,'w',encoding='utf-8') as f:
            f.write(dic['content'])
    if dic['opt']=='download':
        pass
    conn.close()
    sk.close()
    
    
    
    #-------client层
    import socket
    import os
    import json
    sk=socket.socket()
    sk.connect(('10.70.2.143',8080))
    menu={'1':'upload','2':'download'}
    for k,v in menu.items():
        print(k,v)
    num=input("请输入功能选项:")
    if num=='1':
        #上传功能
        #(功能,文件名,文件路径)
        dic={'opt':menu[num],'filename':None,'content':None}
        file_path=input("请输入需要上传的文件路径")
        #D:PygametestscrapyTestsocket_file_test.py
        #获取路径的文件名
        filename=os.path.basename(file_path)
        #获取路径的文件内容
        with open(file_path,'r',encoding='utf-8') as f:
            content=f.read()
        dic['filename']=filename
        dic['content']=content
        #将字典序列化为字符串的形式
        str_dic=json.dumps(dic)
        #传给服务器
        sk.send(str_dic.encode('utf-8'))
    
    if num=='2':
        pass
    sk.close()
  • 相关阅读:
    python执行线程方法
    Python 多线程教程:并发与并行
    python中遍历文件的3个方法
    docker-compose编写(英文)
    使用Docker构建redis集群--最靠谱的版本
    iptables四个表与五个链间的处理关系
    Docker相关文档
    HTTP 之 Content-Type
    Python之VSCode
    自定义分页
  • 原文地址:https://www.cnblogs.com/god-for-speed/p/11719023.html
Copyright © 2011-2022 走看看