📄 mcast_get_ttl.c
字号:
#include "unp.h"
int
mcast_get_ttl(int sockfd)
{
switch (sockfd_to_family(sockfd)) {
case AF_INET: {
u_char ttl;
socklen_t len;
len = sizeof(ttl);
if (getsockopt(sockfd, IPPROTO_IP, IP_MULTICAST_TTL,
&ttl, &len) < 0)
return(-1);
return(ttl);
}
#ifdef IPV6
case AF_INET6: {
int hop;
socklen_t len;
len = sizeof(hop);
if (getsockopt(sockfd, IPPROTO_IPV6, IPV6_MULTICAST_HOPS,
&hop, &len) < 0)
return(-1);
return(hop);
}
#endif
default:
errno = EPROTONOSUPPORT;
return(-1);
}
}
int
Mcast_get_ttl(int sockfd)
{
int rc;
if ( (rc = mcast_get_ttl(sockfd)) < 0)
err_sys("mcast_get_ttl error");
return(rc);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -