123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- #ifndef __CSOCKETCLIENT_H_
- #define __CSOCKETCLIENT_H_
- #include "ErrorCode.h"
- #include <deque>
- #include <boost/bind.hpp>
- #include <boost/asio.hpp>
- #include <boost/function.hpp>
- #include <boost/thread.hpp>
- #include "CMessage.h"
- #include "ISocketCallback.h"
- #include <vector>
- #include "baseEx.h"
- //extern class CWebsocketServer;
- bool checkHttpThreadFun(const std::string url);
- std::pair<bool, std::string> DetectActiveHttp(std::vector<std::string> urlArr);
- namespace Chromium{
- typedef std::deque<CMessage> CMessageQueue;
- class CSocketClient {
- typedef CSocketClient this_type;
- typedef boost::asio::ip::tcp::acceptor acceptor_type;
- typedef boost::asio::ip::tcp::endpoint endpoint_type;
- typedef boost::asio::ip::tcp::socket socket_type;
- typedef boost::asio::ip::address address_type;
- typedef boost::shared_ptr<socket_type> sock_ptr;
- typedef std::vector<char> buffer_type;
- public:
- explicit CSocketClient(CEntityBase* pEntity, unsigned int id);
- CSocketClient(boost::asio::io_service &ios , const char* ipAddr, const char* port, CEntityBase* pEntity, unsigned int id);
- ~CSocketClient();
- ErrorCodeEnum Connect();
- ErrorCodeEnum Close();
- ErrorCodeEnum Reconnect();
- ErrorCodeEnum Write(CMessage *pMsg);
- ErrorCodeEnum StartSocketService();
- ErrorCodeEnum StopSocketService();
- ErrorCodeEnum SetMessageHandler(ISocketCallback *obj);
- private:
- void handle_connect(const boost::system::error_code& err);
- void handle_close(const boost::system::error_code& err);
- void handle_read(const boost::system::error_code& err,
- const size_t bytes_transferred, CMessage &msg);
- void handle_write(const boost::system::error_code& err);
- void thread_recv();
- void hexdump(const char *buf, const int num);
- private:
- // new test
- endpoint_type m_ep;
- sock_ptr m_psocket;
- buffer_type m_buf;
- boost::asio::io_service *m_pio;
- boost::thread* m_pNetThread;
- unsigned int mID;
- std::vector<char> m_vbuf;
- boost::function<void(CMessage&, unsigned int)> mMessageHandler;
- CMessageQueue write_msgs_;
- CEntityBase* m_pEntity;
- };
- }
- #endif
|