socket实现文件的上传

Posted god-for-speed

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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()

 

以上是关于socket实现文件的上传的主要内容,如果未能解决你的问题,请参考以下文章

C# Winform 多线程 SOCKET 文件上传,下载

Java Socket如何实现文件的断点续传,有代码更好

c# c/s结构Socket上传文件的代码

socket实现文件的上传

socket编程实现文件的上传和下载

Python网络编程之基于socket实现文件上传