我有一个 tcp 服务器,它需要在任何时候只允许一个客户端连接到它。每当新客户端连接时,必须删除旧会话并创建新会话。
现在,我正在这样做:
void TcpServer::start_accept() {
Logger::info("[TCPSERVER] TCP Server starting to accept", __LINE__, __FILE__);
if (session) { // check if there is any older session, if so..delete them
session = NULL;
delete session;
}
session = new TcpServerSession(io_service_);
acceptor_.async_accept(session->socket(), boost::bind(&TcpServer::handle_accept, this, session, boost::asio::placeholders::error));
}
所以任何时候我想向客户发送一条消息,它都是这样完成的:
int TcpServer::sendMsgToClient(std::string msg) {
if (session)
session->sendMsgToClient(msg);
}
我想知道这是否正确完成?基本上要点是删除一个指针并重新创建它。最好的方法是什么?