目录
简单的文件ftp上传
server
import socketimport structservice=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 socketimport structclient=socket.socket()client.connect(('127.0.0.1', 8081))import osimport jsonprint(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 jsonss={'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')))