0

它可能也与其他问题有关。我需要用 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 数据包有一个未知的长度字段“文件名”(和“模式”)。因为我的服务器需要是通用的,我该如何实现这个选项?创建一个大得离谱的缓冲区并等到 recvfrom() 返回 0?

谢谢!

4

1 回答 1

0

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

于 2012-12-13T14:37:07.043 回答