我得到了以下链接:getsockopt() 中的 SOL_SOCKET
但这对我来说真的很困惑。一位回答说,这SOL_SOCKET
意味着套接字层。什么是套接字层?该参数还有其他可用选项吗?
如果我们传递SOL_SOCKET
参数会发生什么?它SOL
代表什么?
我正在使用 UNIX。
我得到了以下链接:getsockopt() 中的 SOL_SOCKET
但这对我来说真的很困惑。一位回答说,这SOL_SOCKET
意味着套接字层。什么是套接字层?该参数还有其他可用选项吗?
如果我们传递SOL_SOCKET
参数会发生什么?它SOL
代表什么?
我正在使用 UNIX。
“套接字层”是指操作系统的套接字抽象。这些选项可以独立于您正在处理的套接字类型进行设置。实际上,您可能只对 TCP/IP 套接字感兴趣,但也有 UDP/IP 套接字、Unix 域套接字等。相关的选项SOL_SOCKET
可以应用于其中任何一个。另一个问题的答案中提供的列表中有一些;在套接字的手册页中,“套接字选项”部分下还有更多内容。
SOL_SOCKET
是与该级别关联的“协议号”的常量。对于其他协议或级别,您可以使用getprotoent
从其名称中获取协议号,或者查看协议的手册 - 例如,在IP的手册页中描述了IP(IPPROTO_IP
),TCP(IPPROTO_TCP
) 和 UDP ( IPPROTO_UDP
),而Unix 套接字的手册页说,出于历史原因,它的协议选项也必须设置使用SOL_SOCKET
。此外,您可以在 中找到系统支持的协议列表/etc/protocols
。当然,每个协议支持的选项都在它们的手册中:IP、TCP、UDP、Unix 套接字...