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


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

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

  • WSACancelBlockingCall
  • WSAIsBlocking
  • WSASetBlockingHook
  • WSAUnhookBlockingHook

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