在使用boost时,使用异步模式多线程. 程序退出时有一个坑. 就是存在一种情况, 当网络模块释放资源后, 一些收发函数还在做处理. 如果收发函数使用了网络模块里面的资源. 那么就会出现内存泄漏问题.
所以一个解决办法就是,在网络函数收发没有完全关闭之前,不要进行资源的清理. 也就是在要等socket关闭(收发都结束),再进行析构.
CDealTcpAsyncClientCmd::~CDealTcpAsyncClientCmd()
{
while(m_socket.is_open()) // 当socket还是开状态,继续循环
{
Sleep(<