FTP:上传下载文件

定制报文头,conn.send()

import struct    #利用struct来处理

fileinfo={

'filename':'a.txt',             #指明文件名

'filesize':13333    #指明文件大小

}

#为了传输,应该把字典转换为字节流的形式,利用pickle

import pickle

baotou=pickle.dumps(fileinfo)

length=len(baotou)

baotou_length=struck.pack('i',length)

conn.send(baotou_length)

conn.send(baotou)

#真实发数据

conn.send(ret)

#接收端

baotou_length=tcp_client.recv(4)     #先收四个字节的报文头长度,然后报文,然后具体信息

baotou_length=struct.unpack('i',baotou_length)[0]     #解出来为元祖形式

picks_baotou=tcp_client.recv(baotou_length)    #pickle制作的字节

fileinfo=pickle.loads(picks_baotou)      #还原成一个字典

fileinfo['filename']    #得到文件名

fileinfo['filesize']    #得到文件内容

 

上传过程:基于网络来实现此拷贝操作

1、在发送端将文件名发过去,同时加上文件内容,

2、接收端拿到后,先按照发来的文件名创建一个空文件,然后把内容写到该文件中

posted on 2018-04-25 14:44  Josie_chen  阅读(145)  评论(0编辑  收藏  举报

导航