一、代码
# 实现TFTP客户端
from socket import *
import struct
filename = 'ren.jpg'
server_ip = '192.168.1.6'
# 要将字符串转成字节流才能在网络发送接收
send_data = struct.pack('!H7sb5sb', 1, filename.encode(), 0, 'octet'.encode(), 0)
s = socket(AF_INET, SOCK_DGRAM)
s.sendto(send_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
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))
二、运行结果

三、疑问
老师请问,我的代码有问题吗?或者图片存放路径有问题?谢谢老师

