что такое уровень параметра в getsockopt?

Я получил следующую ссылку: SOL_SOCKET в getsockopt()

Но это действительно сбивает меня с толку. Один ответил, что SOL_SOCKET означает уровень сокета. Что такое уровень сокета? Есть ли другие варианты для этого параметра?

Что произойдет, если мы передадим параметр SOL_SOCKET и что означает SOL?

Я использую UNIX.


person VINOTH ENERGETIC    schedule 09.10.2014    source источник


Ответы (1)


«уровни сокетов» относятся к абстракции сокетов операционной системы. Эти параметры могут быть установлены независимо от типа сокета, с которым вы работаете. На практике вас могут интересовать только сокеты TCP/IP, но есть также сокеты UDP/IP, доменные сокеты Unix и другие. Параметры, относящиеся к SOL_SOCKET, могут быть применены к любому из них. В списке, приведенном в ответе на другой вопрос, есть некоторые из них; на справочной странице сокетов их еще больше, под Раздел "Параметры сокета".

SOL_SOCKET — это константа для «номера протокола», связанного с этим уровнем. Для других протоколов или уровней вы можете использовать getprotoent для получения номер протокола по его названию или сверьтесь с руководством по протоколу, например, в разделе руководящая страница IP описывает константы для номеров протоколов IP (IPPROTO_IP), TCP (IPPROTO_TCP) и UDP (IPPROTO_UDP), а manual сокетов Unix сказано, что по историческим причинам параметры протокола также должны быть установлены с помощью SOL_SOCKET. Кроме того, вы можете найти список поддерживаемых протоколов для вашей системы в /etc/protocols. И, конечно же, параметры, поддерживаемые каждым из протоколов, есть в их руководствах: IP, TCP, UDP, сокеты Unix...

person jdehesa    schedule 09.10.2014
comment
Теперь я разобрался со слоем сокетов. Но что означает SOL, есть идеи? - person VINOTH ENERGETIC; 10.10.2014
comment
Есть ли какой-либо другой параметр, который можно установить, кроме SOL_SOCKET - person VINOTH ENERGETIC; 10.10.2014
comment
@VinothKumar Я расширил свой ответ, надеюсь, это поможет! - person jdehesa; 10.10.2014
comment
@jdehesa Это то, чего я ожидал - person VINOTH ENERGETIC; 13.10.2014