什么时候关闭CAsyncSocket是安全的?

时间:2014-01-20 21:43:36

标签: c++ windows sockets mfc casyncsocket

如果我在调用CAsyncSocket之后但在调用CAsyncSocket回调之前删除了Connect,则

OnConnect会崩溃我的应用程序。 ASSERT(pSocket != NULL) CAsyncSocket::DoCallBack失败,应用程序退出。

换句话说,如果我创建一个CAsyncSocket,尝试将它连接到服务器,然后在该连接成功或失败之前终止它,我有问题。我可以通过实现OnConnect并设置一个指示连接尝试已完成的标志来避免此特定崩溃。如果该标志为false,我知道删除是不安全的。

在删除对象之前是否还需要检查其他情况?有没有一种方法来检查它是否安全?或者我是否需要为我可能启动的任何操作(OnReceiveOnSendOnConnect)实现所有回调并确保已调用这些回调?