Поскольку вы пометили вопрос C ++, вас может заинтересовать использование boost :: asio , ACE или какой-либо другой кроссплатформенной библиотеки сокетов для C ++ или для CНекоторые другие кроссплатформенные библиотеки могут быть найдены в ответах на Библиотека сокетов C ++ для кроссплатформенного и API кроссплатформенной сети .
Предполагается, что использование третьегоБиблиотека кроссплатформенных сокетов для вечеринок вам не подходит ...
Заголовок определено в IEEE Std.1003.1 (POSIX), но, к сожалению, Windows не соответствует стандарту POSIX.Компилятор MinGW является портом GCC для компиляции приложений Windows и поэтому не включает эти системные заголовки POSIX.Если вы устанавливаете GCC, используя Cygwin , то он будет включать эти системные заголовки для эмуляции среды POSIX в Windows.Имейте в виду, однако, что если вы используете Cygwin для сокетов, которые а.) Вам нужно будет поместить библиотеку cygwin в место, где ваше приложение может ее прочитать, и б.) Заголовки Cygwin и заголовки Windows не очень хорошо взаимодействуют (поэтомуесли вы планируете включить windows.h
, то, вероятно, вы не хотите включать sys/socket.h
).
Моя личная рекомендация - загрузить копию VirtualBox , загрузите копию Ubuntu , установите Ubuntu в VirtualBox, а затем выполните кодирование и тестирование в Ubuntu.В качестве альтернативы мне говорят, что Microsoft продает «подсистему UNIX» и что она предустановлена в некоторых более поздних выпусках Windows, хотя я понятия не имею, насколько эта система совместима (и, если она совместима, с каким выпуском)стандарта UNIX это соответствует).Winsockets также вариант, хотя они могут вести себя немного иначе, чем их аналоги POSIX, даже если подписи могут быть похожими.