我收到以下链接:SOL_SOCKET in getsockopt()getsockopt中的参数级别是什么?
但是这对我来说真的很让人困惑。一个答复说SOL_SOCKET
意味着套接字层。什么是套接字层?有没有其他选项可用于该参数?
如果我们通过SOL_SOCKET
参数,SOL
代表什么,会发生什么?
我正在使用UNIX。
我收到以下链接:SOL_SOCKET in getsockopt()getsockopt中的参数级别是什么?
但是这对我来说真的很让人困惑。一个答复说SOL_SOCKET
意味着套接字层。什么是套接字层?有没有其他选项可用于该参数?
如果我们通过SOL_SOCKET
参数,SOL
代表什么,会发生什么?
我正在使用UNIX。
“套接字层”指的是操作系统的套接字抽象。这些选项可以独立于您正在处理的套接字类型进行设置。实际上,您可能只对TCP/IP套接字感兴趣,但也有UDP/IP套接字,Unix域套接字等。与SOL_SOCKET
相关的选项可以应用于其中的任何选项。 The list provided in the answer of the other question有一些;在manual page of sockets有更多,在“套接字选项”部分下。
SOL_SOCKET
是与该级别关联的“协议号”的常量。对于其他协议或级别,可以使用getprotoent
从其名称中获取协议号,或查看协议手册 - 例如,在manual page of IP中描述了IP协议号(IPPROTO_IP
),TCP(IPPROTO_TCP
) )和UDP(IPPROTO_UDP
),而manual page of Unix sockets表示由于历史原因,其协议选项也必须使用SOL_SOCKET
来设置。此外,您可以在/etc/protocols
中找到系统支持的协议列表。并且,当然,每个协议支持的选项都在其手册中:IP,TCP,UDP,Unix sockets ...
我现在很清楚套接字层。但是SOL代表什么想法? – 2014-10-10 04:46:41
是否有任何其他选项可以设置,而不是SOL_SOCKET – 2014-10-10 04:47:19
@VinothKumar我已经扩展了我的答案,希望有所帮助! – jdehesa 2014-10-10 07:36:41