В наши дни мы не различаем язык, библиотеку классов, к которой можно получить доступ, от языка и базовой операционной системы.Вот мое объяснение
C, C ++, C #, Java - только языки не имеют конкретной поддержки в отношении сетевого программирования.
Библиотека классов Java, .Net Framework, стандартная библиотека C ++ - я думаю, что C # & Java предоставляет некоторые классы для сетевого программирования.Стандартная библиотека C ++ не предоставляет никаких классов сетевого программирования (доступны только iostreams для файла, stdinput и строк).Но библиотека BOOST для C ++ предоставляет классы для сетевого программирования.Я не знаю о других библиотеках.
ОС - операционная система предоставляет базовый API (в основном на C), который используется библиотеками классов выше.В случае Windows это API Winsock (WSA), а в случае Unix - API BSD сокета.Я думаю, что windows также поддерживает в некоторой степени API BSD, так что кривая обучения меньше.Но, как сказал @EnabrenTane, это нечто большее.