我正在使用 Arduino 以太网将 UDP 数据报发送到远程主机。我用来发送单个数据报的代码是:
Udp.begin(localPort);
...
Udp.beginPacket(remoteIP, remotePort);
Udp.write(data);
Udp.endPacket();
我的问题是我需要自定义传出 UDP/IP 数据包的 TTL,但是Udp.begin、Udp.beginPacket、Udp.write和Udp.endPacket都没有提供参数来设置此类选项。
我知道 TTL 字段属于IP 标头,但您似乎没有使用 Arduino 的以太网/套接字/w5100 库处理原始 IP 数据包。
我查看了上述函数的定义,特别是EthernetUDP::beginPacket
在我想在传递消息的有效负载之前找到有用的东西,但我被卡住了,因为它只包含对startUDP()
(socket. cpp),后者处理我不清楚的 W5100 类的方法。
有人知道是否有某种高级工具来设置数据包的 TTL,还是应该更深入地研究库来实现这一点?