BOOST ASIO - 异步套接字

Gro*_*ovy 1 c++ boost boost-asio

我正在尝试使用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
                              )
                          )
Run Code Online (Sandbox Code Playgroud)

在我的handleRead()函数中,我将数据转储到屏幕上.

Vin*_*enz 5

好吧,Handler::handleRead()你必须再安排async_read_some()一次