Таблица
Таблица 7.7.
WSACancelBlockingCall |
прерывание блокирующей процедуры (без аргументов); |
WSAIsBlocking |
определение блокирующей операции (без аргументов); |
WSASetBlockingHook |
перехват блокирующего вызова, организация цикла ожидания; |
WSAUNhookBlockingHook |
восстановление прежней блокировки. |
При необходимости прервать блокирующую операцию можно вызвать процедуру WSACancelBlockingCall, прикладная программа получит при этом сообщение об ошибке (WSAEINTR). Оператор WSAIsBlocking возвращает значение TRUE, если в данный момент реализуется блокирующая операция. Последние два оператора из четырех названных служат для построения пользовательских обработчиков сообщений.
Аппарат соединителей предполагает возникновение и исчезновение вычислительных и управляющих процессов. Новый процесс может наследовать "старые" соединители. В этом случае может возникнуть необходимость выяснить, адрес партнера, с которым взаимодействует данный соединитель. Эту задачу можно решить с помощью команды getpeername(s, destaddr, addrlen), где destaddr - указатель на структуру типа (Рисунок 7.5):
Содержание раздела