Наследуется от basic_socket.
Отменить все асинхронные операции, связанные с розеткой.
boost::system::error_code cancel(
boost::system::error_code & ec);
Эта функция приводит к тому, что все выдающиеся асинхронные операции подключения, отправки и получения завершаются немедленно, и обработчики для отмененных операций будут переданы.асио:Ошибка:Операция
Ошибка.
- ec
Установить, какая ошибка произошла, если таковая имеется.
Звонки наотменяют[]
всегда будут выходить из строя сповышением::asio::ошибка::операция_не_поддерживаемая
при запуске на Windows XP, Windows Server 2003 и более ранних версиях Windows, если не определен BOOST_ASIO_ENABLE_CANCELIO. Однако функция CancelIo имеет две проблемы, которые следует рассмотреть, прежде чем разрешить ее использование:
- Он отменит только асинхронные операции, которые были начаты в текущем потоке.
- Это может показаться полным без ошибок, но запрос на отмену незавершенных операций может молча игнорироваться операционной системой. Работает он или нет, зависит от установленных драйверов.
Для переносной отмены рассмотрите возможность использования одной из следующих альтернатив:
- Отключить порт завершения ввода/вывода Asio, определив BOOST_ASIO_DISABLE_IOCP.
- Используйте функцию
close()
, чтобы одновременно отменить выдающиеся операции и закрыть розетку.
При работе на Windows Vista, Windows Server 2008 и более поздней версии всегда используется функция CancelIoEx. Эта функция не имеет проблем, описанных выше.