SOL_SOCKET в getsockopt ()

Как говорится в странице man linux «Используйте эту константу в качестве аргумента уровня для getsockopt или setsockopt для управления параметрами уровня сокета, описанными в этом разделе». Я все еще не знаю, что означает SOL_SOCKET, что он делает?

SOL_SOCKET – это сам сокет. Используется для опций, которые не зависят от протокола.

Вы можете прочитать больше здесь: http://www.delorie.com/gnu/docs/glibc/libc_352.html

При извлечении опции сокета или ее настройке вы указываете имя параметра, а также уровень. Когда level = SOL_SOCKET, элемент будет искать в самом гнезде.

например. Предположим, что мы хотим установить параметр сокета для повторного использования адреса в 1 (on / true), мы передаем «уровень» SOL_SOCKET и значение, которое мы хотим установить.

int value = 1; setsockopt(mysocket, SOL_SOCKET, SO_REUSEADDR, &value, sizeof(value)); 

Это установит SO_REUSEADDR в моем сокете 1.

Я сам застрял в этом, документация чрезвычайно загадочна. Немного более подробная документация здесь: http://pubs.opengroup.org/onlinepubs/7908799/xns/getsockopt.html