7

CAsyncSocketCAsyncSocketの呼び出し後、コールバックが呼び出されるConnect前にを削除すると、アプリケーションがクラッシュしOnConnectます。 ASSERT(pSocket != NULL)失敗しCAsyncSocket::DoCallBack、アプリケーションは終了します。

つまり、 を作成しCAsyncSocket、それをサーバーに接続しようとして、接続が成功または失敗する前に強制終了すると、問題が発生します。OnConnect接続試行が完了したことを示すフラグを実装して設定することで、この特定のクラッシュを回避できます。フラグが false の場合、削除するのは安全ではないことがわかります。

オブジェクトを削除する前に確認する必要がある他のケースはありますか? 安全かどうかを確認する単一の方法はありますか? OnReceiveまたは、開始する可能性のある操作 ( 、OnSend、 )のすべてのコールバックを実装し、OnConnectそれらのコールバックが呼び出されていることを確認する必要がありますか?

4

1 に答える 1