Кто-нибудь знает различия между WinSock.h и WinSock2.h. Я знаю, что они не используют одну и ту же библиотеку (.lib), но я не знаю, добавляет ли WinSock2 новые функции или улучшает функции WinSock 1. Я работаю с сокетами IP/TCP и хочу управлять таймаутами с помощью select(). Я также использую несколько потоков для одновременного управления несколькими клиентами. Должен ли я продолжать использовать WinSock 1.1 или я должен перейти на WinSock 2? Заранее спасибо.
WinSock.h & WinSock2.h который использовать?
Ответ 1
Вероятно, вы должны использовать winsock2.h
.
Несколько точек:
-
winsock.h
следует использовать сwsock32.lib
, аwinsock2.h
следует использовать сws2_32.lib
-
winsock.h
иwinsock2.h
не должны быть вместе в одном проекте,winsock2.h
заменяетwinsock.h
и не расширяет его. -
winsock.h
следует использовать только в том случае, если вы нацеливаете старую версию Windows, например Windows 95/Windows NT 3.5.
Реализации Microsoft
Версия 1.1 (winsock.h
) Winsock была предоставлена в дополнительном пакете (называемом Wolverine) для Windows для рабочих групп (код Snowball). Это был неотъемлемый компонент Windows 95 и Windows NT от версий 3.5 и далее (исходная коммерчески доступная версия Windows NT, версия 3.1, включала только проприетарную и довольно неполную реализацию TCP/IP на основе AT & T UNIX System V API "Потоки".
Версия 2.1 (winsock2.h
) Winsock была предоставлена в дополнительном пакете для Windows 95. Он был неотъемлемым компонентом Windows 98, Windows NT 4.0 и всех последующих выпусков Windows. Последние версии Winsock 2.x были доставлены с новыми версиями Windows или как часть пакетов обновления.
Добавляет ли Winsock2 функции?
Winsock 2 расширяется с помощью механизма, известного как Layered Service Provider (LSP). Winsock LSP доступны для широкого круга полезных целей, включая родительский контроль в Интернете, фильтрацию веб-контента, QoS и т.д.
Ответ 2
Winsock.h должен содержать компиляцию кода, которая началась в 16-разрядной версии Windows. Вы всегда должны использовать Winsock2.h и ссылку на ws2_32.lib в новых проектах.