操作步骤:
1、读取文件名
2、文件是否存在
3、打开文件
4、读取文件大小
5、准备发送文件到客户端
6、等客户端确认,防止发生粘包
7、发送数据
8、md5校验
客户端
import socket
import hashlib
client = socket.socket()
client.connect(("localhost", 9999))
while True:
cmd = input(">>:").strip()
if len(cmd) == 0: continue
if cmd.startswith("get"):
client.send(cmd.encode("utf-8")) # 发送1
data_size = client.recv(1024) # 接收2 文件大小
print("接收的文件大小为:", data_size)
client.send("准备好了".encode("utf-8")) # 发送3 发送确认
filename = cmd.split()[1]
recived_size = 0
m = hashlib.md5()
with open(filename + ".new", "wb") as f:
while recived_size < int(data_size.decode()):
if int(data_size.decode()) - recived_size > 1024:#防止粘包