from socket import*
import struct
fine = "mei.jpg"
cmb_buf = struct.pack('!H%dsb5sb' % len(fine), 1, fine.encode(), 0, "octet".encode(), 0)
udpSock = socket(AF_INET,SOCK_DGRAM)
udpSock.sendto(cmb_buf,("127.0.0.1",69))
f = open(fine,"ab") #以追加模式打开,没有了创建文件夹
while True:
recv_date = udpSock.recvfrom(1024) #接收数据
caozuoma, ack_num = struct.unpack("!HH",recv_date[0][:4]) #获取数据编号
rand_port = recv_date[1][1] #获取服务器随机端口
if int(caozuoma) == 5:
print("文件不存在")
break
print("操作码:%d,ACK: %d,服务器随机端口:%d,数据长度:%d"%(caozuoma, ack_num, rand_port, len(recv_date[0])))
f.write(recv_date[0][4:]) #将数据写入
if len(recv_date[0]) < 516:
break
ack_date = struct.pack("!HH", 4, ack_num)
udpSock.sendto(ack_date, (cmb_buf, rand_port))
老师,什么错误