Tftod 的服务器使用下载文件
绿色的软件打开就可以使用
打开的界面是这样
指定一个目录 那么这个目录就可以当作服务器来使用
需要注意的: 默认的端口是69 是基于UDP实现的
操作码 |
功能 |
1 |
读请求,即下载 |
2 |
写请求,即上传 |
3 |
表示数据包,即DATA |
4 |
确认码,即ACK |
5 |
错误 |
每次请求服务器,服务器会给响应,再接收到服务器给的响应后,需要告诉服务器,我这边收到了,然后服务器再给发数据,再响应。。
注意 1: 数据包给的块编号是每次响应的,需要即使返回。
2:提交的数字需要转码,不是ASIC码,服务器即使接收到也不能及时响应操作
这里的编码解码 需要用到struct包 这个是模块包 octet 固定的
首先先完成一次的发送和接收
from socket import *
import struct
def main():
# 采用socket 来发送接收
uip = ('192.168.119.172', 69)
sendData = struct.pack("!H8sb5sb", 1, b"test.jpg", 0, b"octet", 0)
st = socket(AF_INET, SOCK_DGRAM)
# 发送的内容,等待响应的ip和端口
st.sendto(sendData, uip)
# 发送完成查看返回的数据
rdate = st.recvfrom(1024)
print(rdate)
if __name__ == '__main__':
main()
(b'\x00\x03\x00\x01(省略了)。\xf1\x17\x18\x19\x1a&\'()*56789:CDEFGHI', ('192.168.119.172', 63807))
返回的信息就是 操作码加上 块编号和数据 数据的大小是512
操作码 03 块编号是 01