diff --git a/tcpsyncclient.cpp b/tcpsyncclient.cpp index 3cdbd31..0970dd9 100644 --- a/tcpsyncclient.cpp +++ b/tcpsyncclient.cpp @@ -1,33 +1,87 @@ #include "tcpsyncclient.h" -TcpSyncClient::TcpSyncClient(boost::asio::ip::tcp::endpoint ep, boost::asio::io_service& service, - const std::string channel) : m_started(true), m_ep(ep), m_sock(service), - m_channel(channel) -{ - log(ep.address().to_string()); - log(ep.port()); - log(m_channel); - - bool connectStatus = connect_to_server(); - if(!connectStatus) { - log("Connection error"); - } -} - -bool TcpSyncClient::connect_to_server() -{ - m_sock.connect(m_ep); - return true; -} - template void TcpSyncClient::log(T message) { std::cout << "[TSC] " << message << std::endl; } -size_t TcpSyncClient::read_complete(char * buf, const error_code & err, size_t bytes) { +TcpSyncClient::TcpSyncClient(boost::asio::ip::tcp::endpoint ep, boost::asio::io_service& service, + const std::string channel) : m_started(true), + m_ep(ep), m_sock(service), + m_channel(channel) + +{ + log(ep.address().to_string()); + log(ep.port()); + log(m_channel); + + connect_to_ep(); //FIXME return code ? + connect_to_server(); + +} + +bool TcpSyncClient::write(std::string msg) +{ + try { + m_sock.write_some(boost::asio::buffer(msg + '\n')); + } catch (boost::system::system_error & err) { + log("Write("+msg+") error"); + std::cerr << err.what() < -#include #include #include #include #include #include -using namespace boost::placeholders; +const static std::string USER = "acetonebot"; +const static std::string NICK = "bot"; +const static std::string REALNAME = "IRC bot in C++"; + using boost::system::error_code; class TcpSyncClient { public: TcpSyncClient(boost::asio::ip::tcp::endpoint, boost::asio::io_service&, const std::string); + bool write(std::string); private: template void log(T); - bool connect_to_server(); - size_t read_complete(char*, const error_code&, size_t); + bool connect_to_ep(); + size_t read_complete(const error_code&, size_t); + void read_answer(); + void process_msg(); int m_already_read; bool m_started; char m_buff[1024]; // Буффер 1Кб - std::string m_channel; boost::asio::ip::tcp::endpoint m_ep; boost::asio::ip::tcp::socket m_sock; + + std::string m_channel; + void loop(); + void answer_to_ping(std::string); + bool connect_to_server(); }; #endif // TCPSYNCCLIENT_H