CAsyncSocket
CAsyncSocket
の呼び出し後、コールバックが呼び出されるConnect
前にを削除すると、アプリケーションがクラッシュしOnConnect
ます。 ASSERT(pSocket != NULL)
失敗しCAsyncSocket::DoCallBack
、アプリケーションは終了します。
つまり、 を作成しCAsyncSocket
、それをサーバーに接続しようとして、接続が成功または失敗する前に強制終了すると、問題が発生します。OnConnect
接続試行が完了したことを示すフラグを実装して設定することで、この特定のクラッシュを回避できます。フラグが false の場合、削除するのは安全ではないことがわかります。
オブジェクトを削除する前に確認する必要がある他のケースはありますか? 安全かどうかを確認する単一の方法はありますか? OnReceive
または、開始する可能性のある操作 ( 、OnSend
、 )のすべてのコールバックを実装し、OnConnect
それらのコールバックが呼び出されていることを確認する必要がありますか?