0

我正在使用 C++ 编写一个 TFTP 客户端。我能够使用“八位字节”模式向默认的 TFTP 客户端 (tftpd32) 发送读取请求。问题是我无法在常规 TFTP 响应中发回 ACK。我收到以下错误:

Connection received from 127.0.0.1 on port 51401 [27/07 23:03:15.612]
Read request for file <test.txt>. Mode octet [27/07 23:03:15.612]
Using local port 51402 [27/07 23:03:15.612]
Connection received from 127.0.0.1 on port 51401 [27/07 23:03:18.624]
Unexpected request 4 from peer [27/07 23:03:18.624]
Returning EBADOP to Peer [27/07 23:03:18.624]

为什么我可以使用相同的方法发送 RRQ 但不能发送 ACK?

4

1 回答 1

0

可能是一个不符合要求的 ACK 数据包?看起来您正在发送带有 ACK 操作码的请求……</p>

来自 RFC 1350 的 ACK 数据包的形式:

                 2 bytes     2 bytes
                 ---------------------
                | Opcode |   Block #  |
                 ---------------------

其中操作码=4

于 2012-08-25T09:46:22.487 回答