我收到以下鏈接: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