1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
#include "connexion.h"
connexion::connexion(boost::asio::io_service& io_service) : m_socket(io_service)
{
messagerie = new chat;
}
tcp::socket& connexion::socket()
{
return m_socket;
}
void connexion::read()
{
boost::asio::async_read(m_socket, boost::asio::buffer(m_network_buffer),
boost::asio::transfer_at_least(20),
boost::bind(&connexion::handle_read, shared_from_this(),
boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred));
}
void connexion::handle_read(const boost::system::error_code& error, size_t number_bytes_read)
{
if (!error)
{
std::cout.write(&m_network_buffer[0], number_bytes_read);
read();
}
else
{
std::cout<<error.message();
}
}
// c'est cette procédure que j'aimerais appeler dès que le client se connecte
void connexion::ecrire()
{
std::string m_message;
m_message = "Message venant du client";
boost::asio::async_write(m_socket, boost::asio::buffer(m_message), boost::bind(&connexion::handle_write, shared_from_this(), boost::asio::placeholders::error) );
}
void connexion::handle_write(const boost::system::error_code& error)
{
if (!error)
{
// Autres actions éventuelles
}
} |
Partager