TCP-соединения с перекрывающимся вводом-выводом
Можно ли инициировать запрос TCP-соединения с перекрывающимся вводом-выводом и отменить его до завершения соединения в Windows? Мне нужно поддерживать как минимум Windows XP SP2.
2 ответа
ConnectEx
позволяет перекрытую попытку подключения.
Чтобы отменить это нужно будет использовать CancelIo
прохождение SOCKET
как будто это было HANDLE
(это правда). Но это должно быть сделано из того же потока, который называется ConnectEx
, Управлять вещами, чтобы вы могли достичь этой специфичности потоков, вряд ли будет легко.
После XP/2003 (т.е. Vista/2008/8/2008R2) вы можете использовать CancelIoEx
из другого потока (OVERLAPPED
экземпляр используется для полной идентификации операции ввода-вывода).
перекрытие
Этот каталог содержит пример серверной программы, которая использует перекрывающийся ввод-вывод. В примере программы используется функция AcceptEx и перекрывающийся ввод-вывод для эффективной обработки нескольких асинхронных запросов на подключение от клиентов. Сервер использует функцию AcceptEx для мультиплексирования различных клиентских подключений в однопоточном приложении Win32. Использование перекрывающегося ввода-вывода обеспечивает большую масштабируемость.