я использую повышение: ASIO :: IP :: Tcp :: акцептор создать сокет сервера в моем приложении. Я закрываю это гнездо акцептора, используя close
функция, чем stop
функция в io_service
но все подключенные клиентские сокеты закрываются только тогда, когда мое приложение закрыто. Как я могу это исправить?
Спасибо!
Выполните одно из следующих действий:
socket::close()
на розетках.io_service::stop()
останавливает только обработку цикла событий. Работу еще можно выложить в io_service
и существующая работа останется в io_service
, Таким образом, приложение должно вызвать socket::close()
на каждой из розеток он хочет закрыть. Для переносного изящного закрытия звоните socket::shutdown()
перед звонком close()
,
Возможно, стоит потратить время на обзор Boost.Asio’s HTTP-сервер 1 пример. Он использует connection_manager
отключить все соединения.
Других решений пока нет …