关于tftp的rfc,rrq/wrq包必须如下:
2 bytes string 1 byte string 1 byte
------------------------------------------------
| Opcode | Filename | 0 | Mode | 0 |
------------------------------------------------
模式可以是“netascii”、“octet”(相当于二进制)或“mail”。事情是netascii是8个字母,八位字节有5个,邮件有4个。
我在客户机中创建数据包,如下所示:
paq = struct.pack('!H'+str(len(fileName))+'sB'+str(len(mode))+'sB', 02, fileName, 0,mode, 0)
然后我将数据包发送到服务器,这样服务器就知道要期望什么(如果是RRQ或WRQ)。
问题是,如果我不知道服务器端的字符串长度,我不知道如何解包包…我的意思是,唯一知道文件长度和模式长度的人是客户机,因为它是制作数据包的人。
我需要在服务器端解包这个包的帮助。
在发送RRQ/WRQ包之前,我应该将长度发送到服务器,以便了解解包时使用的格式,还是有其他方法?
谢谢您!