boost asio异步操作
boost::asio::io_service任务队列
run阻塞,直到所有任务完成
stop停止任务阻塞
post任务加入队列,不执行
dispatch任务加入队列,立即执行
连接状态判断
asio包含errorcode参数的函数,不会抛出异常 可以尝试connect之后,判断错误码, boost::asio::error::already_connected 则表示已经连接 断开连接使用close,is_open不表示通断,close后需要open,connect自动打开
m_socket_tclient.is_open() && error != boost::asio::error::not_connected判断连接
接收
tcp::socket m_socket_tclient;
boost::asio::io_service m_io_service;
tcp::acceptor server_acceptor(m_io_service, tcp::endpoint(tcp::v4(), port));
server_acceptor.accept(m_socket_tclient);
boost::array<char, sizeof(PACKAGE_INFO)> buf;
m_socket_tclient.read_some(boost::asio::buffer(buf), error);
thread_pool
boost::