#-------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:\Pygametest\scrapyTest\socket_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()