boost::asio 连接管理4
this指针不能在这种情况下绑定后交给asio使用。那么怎么办?
很简单,我之前的一篇文章介绍过enable_share_from_this。
http://blog.csdn.net/sheismylife/article/details/8282518
现在修改一下Connection类的代码:
chenshu@chenshu-beijing:~/NetBeansProjects/CppApplication_4/dist/Debug/GNU-Linux-x86$ ./cppapplication_4 count1:1count2:2count3:2The new connection object is starting now.correct data received~Connection
这也就解释了为什么那么多asio的例子中都使用了shared_from_this().
现在我们到哪里了?
1.优雅的退出
2.单线程情况下的接受连接和管理连接对象的生命周期
我们知道了连接对象默认如果什么都不做就会被自动销毁。要想不被销毁就要一直发起I/O操作(读或者写),前面的推论已经证明了。
后面继续推进,我们要保证tcp连接被确定关闭,而且为了支持并发,需要线程池的支持。