定制报文头,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、接收端拿到后,先按照发来的文件名创建一个空文件,然后把内容写到该文件中