System.Win.ScktComp.TServerSocket.OnClientConnect

提供: RAD Studio API Documentation
移動先: 案内検索

Delphi

property OnClientConnect: TSocketNotifyEvent index 2 read GetOnClientEvent write SetOnClientEvent;

C++

__property OnClientConnect;

プロパティ

種類 可視性 ソース ユニット
event published
System.Win.ScktComp.pas
System.Win.ScktComp.hpp
System.Win.ScktComp TServerSocket

説明

クライアントソケットがサーバーソケットによって受け入れられた接続を完了したときに発生します。

System.Win.ScktComp.TServerSocket.OnClientConnect は System.Win.ScktComp.TCustomServerSocket.OnClientConnect を継承しています。以下の内容はすべて System.Win.ScktComp.TCustomServerSocket.OnClientConnect を参照しています。

クライアントソケットがサーバーソケットによって受け入れられた接続を完了したときに発生します。

OnClientConnect イベントハンドラを記述すると,クライアントソケットがサーバーソケットへのソケット接続を完了したときに特定の処理が行われるようにすることができます。たとえば,ソケットは OnClientConnect イベントハンドラでその接続での読み書きを開始することもできます。

OnClientConnect が発生するまでのサーバーソケットイベントの順番は以下のとおりです。

1 サーバーソケットがリスニングのためにオープンされる直前に OnListen イベントが発生する。

2 サーバーソケットはリスニングキューにクライアント要求を受け取る。サーバーソケットがそれらの要求の 1 つを受け入れ,新しいソケット接続の Windows ソケットハンドルを受け取る。

3 サーバーソケットが OnGetSocket イベントを生成し,Windows ソケットハンドルに渡す。新しい接続のサーバーエンドポイントの TServerClientWinSocket オブジェクトが OnGetSocket イベントハンドラで作成されない場合は,サーバーソケットがそのオブジェクトを作成する。TServerWinSocket オブジェクトはほかのクライアントのリスニングを続行する。

4 新しい TServerClientWinSocket オブジェクトを使用して,OnAccept イベントが発生する。

5 ServerType が stThreadBlocking で,キャッシュに利用可能なスレッドがない場合は,OnGetThread イベントが発生する。OnGetThread イベントハンドラがスレッドを作成しない場合は,サーバーソケットが TServerClientThread を作成する。

6 ServerType が stThreadBlocking の場合は,スレッドが実行を開始すると,OnThreadStart イベントが発生する。

7 クライアントが TServerClientWinSocket オブジェクトへの接続を完了し,OnClientConnect イベントが発生する。

メモ:  ServerType が stThreadBlocking の場合は,OnClientConnect イベントハンドラ内のすべてのコードがスレッドセーフなコードであることを確認してください。Sender パラメータの GetClientThread メソッドを使用すると,スレッド固有の情報にアクセスできます。

メモ:  関連付けられている TServerSocketOnClientConnect イベントハンドラを設定すると,関連付けられている TServerWinSocketOnClientConnect イベントハンドラも設定されます。

関連項目