Error boost asio bind: ;
Main.cpp
#include <iostream>
#include <boost/asio.hpp>
#include <boost/array.hpp>
#include <boost/bind.hpp>
#include "checkserver.h"
#include "log.h"
int main()
{
try
{
boost::asio::io_service ios;
checkserver client(ios, 7171);
ios.run();
return 0;
}
catch (std::exception& e)
{
std::cerr << e.what() << std::endl;
}
}
checkserver.h
#ifndef Client_checkserver_h
#define Client_checkserver_h
#include "log.h"
class checkserver
{
public :
checkserver(boost::asio::io_service& ios, int port)
:m_socket(ios),
m_endpoint(boost::asio::ip::address::from_string("127.0.0.1"), port)
{
m_port = port;
m_ios = &ios;
connect();
}
~checkserver()
{
}
void connect()
{
m_socket.connect(m_endpoint);
boost::asio::async_read(m_socket, boost::asio::buffer(m_buffer),
boost::bind(&checkserver::read_handler, this,
boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred));
}
void verification(std::string serverStatus)
{
if (serverStatus == "1")
{
std::cout << "Serveur Disponible !" << std::endl;
class log new_connection(*m_ios, m_port);
this->~checkserver();
}
if (serverStatus == "0")
{
std::cout << "Serveur Indisponible !" << std::endl;
checkserver::~checkserver();
}
}
private :
void read_handler(const boost::system::error_code& error, std::size_t
bytes_transferred)
{
m_socket.close();
std::string serverStatus;
std::copy(m_buffer.begin(), m_buffer.begin()+bytes_transferred,
std::back_inserter(serverStatus));
verification(serverStatus);
}
int m_port;
boost::asio::io_service* m_ios;
boost::array<char, 1> m_buffer;
boost::asio::ip::tcp::socket m_socket;
boost::asio::ip::tcp::endpoint m_endpoint;
};
No comments:
Post a Comment