关于boost::asio的socket服务器

我想用boost::asio写个异步服务端,能支持多个客户端连入。连入后不单独对单个客户端做任何操作。只是根据定时器向所有客户端广播消息(简单就是说定时向所有已连接的客户端发消息)。现在客户端连接上来后,回调产生的ip::tcp::socket怎么存储啊

#include "tcpservice.h"
#include <boost/bind.hpp>
#include <memory>

using namespace std;
using namespace boost::asio;

void TcpService::StartAccept()
{
    std::cout << "start accept" << std::endl;
    std::cout << "service ip = " << tcpAcceptor.local_endpoint().address() << std::endl;
    std::cout << "service port = " << tcpAcceptor.local_endpoint().port() << std::endl;

    socket_ptr socket(new ip::tcp::socket(io_service));
    tcpAcceptor.async_accept(*socket, boost::bind(&TcpService::AcceptHandle, this, boost::asio::placeholders::error, socket));
}

void TcpService::AcceptHandle(const boost::system::error_code& error, socket_ptr socketPtr)
{
    std::cout << "accept client ip = " << socketPtr->remote_endpoint().address() << "port = " << socketPtr->remote_endpoint().port() << std::endl;
    StartAccept();
}

代码大概如下,我想把这个socketPtr存下来,后面通过定时器多所有socket的客户端发消息

你只有一个变量那肯定是不行的
你需要定义个数组或者链表之类的结构来存
要广播的时候就循环遍历一下挨个操作