#include <boost/asio/deadline_timer.hpp>
#include <boost/asio/io_service.hpp>
#include <boost/asio/ip/tcp.hpp>
#include <boost/asio/read_until.hpp>
#include <boost/asio/streambuf.hpp>
#include <boost/asio/write.hpp>
#include <boost/bind.hpp>
#include <iostream>
using boost::asio::deadline_timer;
using boost::asio::ip::tcp;
class client
{
public:
// 在构造函数的初始化列表中 初始化所有变量
client(boost::asio::io_service& io_service)
: stopped_(false),
socket_(io_service),
deadline_(io_service),
heartbeat_timer_(io_service)
{
}
// 对外公开并使用的唯一接口
//
void start(tcp::resolver::iterator endpoint_iter)
{
// 连接server
start_connect(endpoint_iter);
// 设定连接超时间,并指定回调函数
deadline_.async_wait(boost::bind(&client::check_deadline, this));
}
private:
void stop()
{
stopped_ = true;
boost::system::error_code ignored_ec;
socket_.close(ignored_ec);// 关闭socket
deadline_.cancel();// 取消定时器
heartbeat_ti
boost::asio 异步超时机制一
最新推荐文章于 2025-07-21 23:48:15 发布