import struct
from socket import *
filename = 'tupian.jpg'
server_ip = '10.1.31.55'
sen_data = struct.pack("!H%dsb5sb" % len(filename),1,filename.encode(),0,"octet".encode(),0)
s = socket(AF_INET,SOCK_DGRAM)
s.sendto(sen_data,(server_ip,69))
f = open(filename,"ab")
while True:
recv_data = s.recvfrom(1024) #接受数据
caozuoma, ack_num = struct.unpack("!HH",recv_data[0][:4]) #获取数据编码块
rand_port = recv_data[1][1] #获取服务器随机端口
if int(caozuoma) == 5:
print("文件不存在")
break
print("操作码:%d ACK:%d,服务器随机端口:%d,数据长度:%d"%(caozuoma,ack_num,rand_port,len(recv_data)))
f.write(recv_data[0][4:]) #讲数据写入
if len(recv_data[0]) < 516:
break
ack_data = struct.pack("!HH",4,ack_num)
s.sendto(ack_data,(server_ip,rand_port)) #回复ACK确认包
老师,我这个代码最后图片加载不出来,下面提示文件不存在,我桌面上也有这个文件,但是就是打不开