Надо понять как GCC подключает заголовочный файл sys/socket.h, т.к. директории /usr/include/sys у меня нет.

Размещение заголовочных файлов

Прототипы функций socket, bind и т.д. находятся здесь:
/usr/include/i386-linux-gnu/sys/socket.h

Константы и типы объявляются здесь:
/usr/include/i386-linux-gnu/bits/socket.h
bits/socket.h подключается в sys/socket.h, поэтому включать его в свой код не надо!

Поддержите проект, если он помог вам

Проект продвигается за счёт личных средств и времени авторского коллектива. Если вы нашли здесь то, что искали, то вы можете выразить свою благодарность финансово. Даже небольшой платёж помогает авторам в их труде, сохраняя их вовлечённость и высокую мотивацию чтобы строить открытый мир равных возможностей для всех неравнодушных людей вокруг.