Linux 内核 IPv4 和 IPv6 套接字创建:EPROTONOSUPPORT 和 ESOCKTNOSUPPORT 错误
Linux kernel IPv4 and IPv6 socket creation: EPROTONOSUPPORT and ESOCKTNOSUPPORT errors
我正在尝试了解 IPv4 socket and IPv6 socket Linux 内核实现。
两种方法
inet_create()
和
inet6_create()
看起来很相似。
他们都可以 return 到用户 space EPROTONOSUPPORT
或 ESOCKTNOSUPPORT
,我想知道在什么情况下会发生这种情况。
ESOCKTNOSUPPORT
means that the socket type is not supported for the chosen protocol. For instance, you can't create a SOCK_SEQPACKET
with IPPROTO_IP
. According to the ip(7) man page, 只有 SOCK_STREAM
, SOCK_DGRAM
和 SOCK_RAW
是 ip 的有效套接字类型。
EPROTONOSUPPORT
表示不支持所选的套接字协议。例如,如果您请求 AF_INET6
并且系统管理员已通过将模块列入黑名单来禁用 IPv6。
我正在尝试了解 IPv4 socket and IPv6 socket Linux 内核实现。
两种方法
inet_create()
和
inet6_create()
看起来很相似。
他们都可以 return 到用户 space EPROTONOSUPPORT
或 ESOCKTNOSUPPORT
,我想知道在什么情况下会发生这种情况。
ESOCKTNOSUPPORT
means that the socket type is not supported for the chosen protocol. For instance, you can't create a SOCK_SEQPACKET
with IPPROTO_IP
. According to the ip(7) man page, 只有 SOCK_STREAM
, SOCK_DGRAM
和 SOCK_RAW
是 ip 的有效套接字类型。
EPROTONOSUPPORT
表示不支持所选的套接字协议。例如,如果您请求 AF_INET6
并且系统管理员已通过将模块列入黑名单来禁用 IPv6。