开了这往篇日志主要是记录一下在使用ACE的Acceptor-Connector框架的过程中,经常会遇到的一些问题。以后会逐渐递增。
1、使用Connector框架时,如果svc_handler对象不是由框架自动创建的,而是由用户自己指定的,那么千万注意当server端主动断开连接时,handle_close的调用不会自动delete该svc_handler对象,也就不会实现svc_handler对象的shutdown()调用,那么svc_handler对象的socket handle就仍然是打开状态,没有办法进行下次connect操作。
解决办法:
在svc_handler对象的handle_input方法中,一旦recv() = 0,说明socket断开时,主动调用 this->shutdown()方法,保证socket handle被关闭。
阅读(3035) | 评论(0) | 转发(0) |