boost::asio::socket tcp 连接 在程序结束时崩溃。

时间:2022-07-29 15:20:50

刚开始的时候一直不知道怎么回事,不过幸好我有在每个class 的析构时都打印一条信息。

这个时候发现我的一个tcp_connection (就是自定义的一个连接类) 在最后才被析构。

所以感觉这里可能出了问题。

由于tcp_connection 是派生自boost::enable_shared_from_this<tcp_connection> 的,
猜想可能是需要提前释放某些资源,而不导致io_service 这个资源释放的时候某些数据不对。
所以我就在socket 调用close() 之后将这个tcp_connection reset() 了(就好比是主动delete)。
结果还真是这样,最后这个崩溃就解决了。

嘻嘻。