【发布时间】:2015-09-12 23:41:59
【问题描述】:
如何使用 C/C++ 标准库在 Windows、Mac 和 Linux 上的 C/C++ 中设置 Time-To-Live 套接字选项?它需要在没有 Boost 的情况下工作。 C 或 C++ 都可以。传出 UDP 数据包的 IP 标头修改。没有多播。
【问题讨论】:
标签: c++ sockets networking udp ip
如何使用 C/C++ 标准库在 Windows、Mac 和 Linux 上的 C/C++ 中设置 Time-To-Live 套接字选项?它需要在没有 Boost 的情况下工作。 C 或 C++ 都可以。传出 UDP 数据包的 IP 标头修改。没有多播。
【问题讨论】:
标签: c++ sockets networking udp ip
基本上这是通过标准setsockopt 完成的。您需要使用IPPROTO_IP 级别,选项为IP_TTL。
我在 gnu.org 上找不到这个链接,但是(例如..)在 freebsd 上你有 this 手册页。
用途:
int ttl = 60; /* max = 255 */
setsockopt(s, IPPROTO_IP, IP_TTL, &ttl, sizeof(ttl));
【讨论】: