io_service::run
обрабатывает обработчики.Обработчики создаются функциями, которые работают в асинхронном режиме, например async_read
, async_write
.Эти функции возвращаются немедленно.Обработчик ставится в очередь, функция возвращает, io_service::run
обрабатывает этот обработчик позже.В вашем случае asio::read
не создает никакого обработчика, это блокирующая функция, поэтому нет необходимости вызывать io_service::run
.