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()
  • 相关阅读:
    省选模拟25
    有关树链剖分
    有关矩阵的一点讨论
    洛谷 P3390 【模板】矩阵快速幂
    HDU P2089
    有关动态规划(主要是数位DP)的一点讨论
    HDU P2222 Keywords Search
    普通平衡树Tyvj1728、luogu P3369 (treap)
    POJ P2104 K-th Number
    POJ 3311Hie with the Pie
  • 原文地址:https://www.cnblogs.com/god-for-speed/p/11719023.html
Copyright © 2011-2022 走看看