Я пытаюсь использовать асинхронные сокеты библиотеки BOOST ASIO.
Моя платформа Linux.
Мой клиент отправляет данные, которые я могу прочитать на стороне сервера.
Для отправки данных во второй раз, клиент должен подключиться снова.
Есть ли способ, которым я могу использовать асинхронные сокеты и поддерживать соединение живым до явного отключения.
Детали моего кода: -
На стороне сервера я использовал async_accept (), который выглядит следующим образом
_acceptor.async_accept(_connection->socket(),
boost::bind(&Server::handleAccept,
this,
boost::asio::placeholders::error));
handleAccept() looks like this
{
_connection->start();
_connection.reset(new Connection(_ioService));
_acceptor.async_accept(_connection->socket(),
boost::bind(&Server::handleAccept,
this,
boost::asio::placeholders::error));
}
start() function looks like this:-
_socket.async_read_some(boost::asio::buffer(_buffer),
_strand.wrap(
boost::bind(
&Handler::handleRead,
shared_from_this(),
boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred
)
)
В моей функции handleRead()
я сбрасываю данные на экран.