Поделиться через


Проблемы совместимости сокетов Windows

Сокеты Windows 2 продолжают поддерживать все вызовы семантики и функций Windows Sockets 1.1, за исключением тех, кто имеет дело с псевдоблокировкой. Так как сокеты Windows 2 выполняются только в 32-разрядных предварительно запланированных средах, не требуется реализовать псевдоблокировку, найденную в сокетах Windows 1.1. Это означает, что код ошибки WSAEINPROGRESSS никогда не будет указан и что следующие функции Сокетов Windows 1.1 недоступны для приложений Windows Sockets 2:

  • WSACancelBlockingCall
  • WSAIsBlocking
  • WSASetBlockingHook
  • WSAUnhookBlockingHookHook

Программы Сокетов Windows 1.1, написанные для использования псевдоблокировок, будут работать правильно, так как они связываются с Winsock.dll или Wsock32.dll. Оба по-прежнему поддерживают полный набор функций Сокетов Windows 1.1. Чтобы программы стали приложениями Сокетов Windows 2, необходимо внести некоторые изменения кода. В большинстве случаев разумное использование потоков можно заменить для размещения обработки, выполняемой с помощью функции блокировки перехватчика.