如何处理未知长度的头(TFTP相关)

时间:2012-11-23 08:37:02

标签: header tftp

它也可能与其他问题有关。 我需要在C(仅限八位模式)中构建一个简单的TFTP服务器,它可以与当今可用的大多数TFTP客户端一起使用(我只需要实现服务器)。

opcode   //2 byte
filename // string (unknown size)
0        // 1 byte
mode     // string (unknows size, max 9 chars considering 'netascii')
0        // 1 byte

但我遇到了问题:RRQ / WRQ数据包有一个未知的长度字段“filename”(和“mode”)。因为我的服务器需要是通用的,我该如何实现这个选项? 创建一个可笑的大缓冲区并等待recvfrom()返回0?

谢谢!

1 个答案:

答案 0 :(得分:0)

使缓冲区不大于以太网数据包的有效负载大小...... 使用TFTP recvfrom将不会返回大于该值的缓冲区...