Я собираюсь разработать некоторые сокеты связанных вещи в C++ и хотел бы программное обеспечение, чтобы быть переносимым между ОС Windows и Linux как можно с самого начала (что делает его портативным позже сложно.)Winsock 2 портативности
Я просмотрел разные библиотеки, есть один для C++ от alhem.net и, конечно же, есть boost :: asio. boost :: asio выглядит очень многообещающим, но будет очень большой зависимостью для приложений, которые это мало.
Стоит ли даже писать материал самостоятельно или я должен просто использовать библиотеку? Если я сделаю это сам, каковы будут основные подводные камни?
Хорошо, я посмотрю, что я делаю. Boost :: asio имеет интерфейс ICMP, который очень хорош, поэтому в настоящее время он выглядит так, как я буду использовать. – Skurmedel
shutdown () является допустимой функцией для сокетов Windows. Правильно ли вы используете closesocket(). –
closeesocket - это просто версия для Windows, поэтому они не должны перегружать функцию закрытия. tHAVE, чтобы закрыть файл/сокет, но если вы этого не сделаете, вы можете получить потерю данных. WSAGetLastError - это просто функция windows, чтобы получить errno, поскольку API окон не поддерживал errno одинаково. И для сокетов POSIX поддерживает «отправку» и «recv» версий чтения и написать. – david