1
有沒有辦法從應用程序設置ttl?使用C++ rh,不使用boost。在/etc/sysctl.conf文件中,net.ipv4.ip_default_ttl值不存在,在/ proc/sys/net/ipv4/ip_default_ttl中寫入64.我正在向多播組發送流量並查看TTL = 1。想把它增加到3. 謝謝。從linux上的應用程序更改TTL
有沒有辦法從應用程序設置ttl?使用C++ rh,不使用boost。在/etc/sysctl.conf文件中,net.ipv4.ip_default_ttl值不存在,在/ proc/sys/net/ipv4/ip_default_ttl中寫入64.我正在向多播組發送流量並查看TTL = 1。想把它增加到3. 謝謝。從linux上的應用程序更改TTL
您可以使用IP_MULTICAST_TTL setsockopt()標誌對每個套接字進行配置。看看ip和setsockopt的手冊頁。
類似以下內容:
void setttl(int sock, uint8_t ttl)
{
int ret = setsockopt(sock, IPPROTO_IP, IP_MULTICAST_TTL, &ttl, sizeof(uint8_t));
if (ret != 0)
printf("Failed to setsockopt(): %s\n", strerror(errno));
}
感謝克里斯託弗!我正在做'setsockopt(m_socket,IPPROTO_IP,IP_MULTICAST_IF,(char *)&localInterface,sizeof(localInterface))'將讀取並檢查您的解決方案 –
或者正確的,我錯過了一個選項。我沒有真正測試它! –