我正在使用Arduino以太网发送UDP数据包到远程主机。我用来发送单个数据包的代码如下:
我的问题是我需要自定义传出的UDP/IP数据包的TTL,但是Udp.begin、Udp.beginPacket、Udp.write和Udp.endPacket都没有提供设置此选项的参数。
我知道TTL字段属于IP头,但似乎您不使用Arduino的以太网/套接字/w5100库处理原始IP数据包。
我查看了上述函数的定义,特别是在
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,还是必须深入库中实现?