Как узнать состояние сокета SSL в Boost asio - PullRequest
3 голосов
/ 10 апреля 2011

В обычных соединениях, если используется сокет:

boost::asio::ip::tcp::socket  socket_;

можно узнать статус сокета:

if (socket_.is_open()) { ... }

Но вместо этого в безопасных соединениях с использованием сокета:

boost::asio::ssl::stream<boost::asio::ip::tcp::socket> socket_;

Не существует метода is_open() для объекта socket_, поэтому вопрос:

Есть ли аналогичный способ узнать состояние сокета?

1 Ответ

4 голосов
/ 11 апреля 2011
boost::asio::ssl::stream<boost::asio::ip::tcp::socket> socket_;
if ( socket_.lowest_layer().is_open() ) {
    // do something great
}

см. Документацию для получения дополнительной информации.

...