Exemplo n.º 1
0
void AsyncConnection::HandleConnect(const MessagePtr msg, const boost::system::error_code& e)
{
    if (!e)
    {
        m_app->HandleConnect(Connection::shared_from_this());
        Start();
        async_send(boost::asio::buffer(msg->Data(), msg->Length()),
                m_strand.wrap(boost::bind(&AsyncConnection::HandleSend, this,
                        msg, boost::asio::placeholders::error, false))); 
    }
}
Exemplo n.º 2
0
void AsyncConnection::Send(const MessagePtr msg)
{
    if (is_open())
    {
        async_send(boost::asio::buffer(msg->Data(), msg->Length()),
                m_strand.wrap(boost::bind(&AsyncConnection::HandleSend, this,
                        msg, boost::asio::placeholders::error, true)));        
    }
    else
    {
        boost::asio::ip::tcp::endpoint endpoint(boost::asio::ip::address::from_string(m_ip), m_port);
        async_connect(endpoint, m_strand.wrap(boost::bind(&AsyncConnection::HandleConnect, this,
                msg, boost::asio::placeholders::error)));
    }
}