Embarcadero RAD studio C++ builder XE を使用して C++ アプリケーションを作成しています。アプリケーションは、動的に作成されたTServerSocketコンポーネントをブロッキング モードで使用します。TServerClientThreadカスタムClientExecute()メソッドを提供する派生クラスを作成します。このクラスは、私が実装したTServerSocketイベント ハンドラーを介して作成されます。、、およびOnGetThreadのイベント ハンドラーを割り当てます。スレッド クラス内では、class を使用してソケット接続から読み書きします。OnAcceptOnClientConnectOnClientDisconnectOnClientErrorTWinSocketStream
を作成するカスタム作成クラス ( から派生TComponent)を使用し、TServerSocket割り当てるイベント ハンドラーはこのクラスのメンバー関数です。
OnAcceptとイベントが発生しますが、とイベントのOnClientDisconnectどちらも発生しません。これは、このコンポーネントの正常な動作ですか? このコンポーネントについて読んだことはすべて、すべてのイベントがブロッキング モードで発生することを示唆しており、これらのイベントが発生しない理由がまったくわかりません。さらに私がしなければならないことはありますか、それともこれらのイベントはブロッキング モードでは機能しませんか? インスタンスを別の派生クラスのメンバーとして使用すると、問題が発生する可能性はありますか?OnClientConnectOnClientErrorTServerSocketTServerSocketTComponent