System.Win.ScktComp.TCustomServerSocket.ServerType
Delphi
property ServerType: TServerType read GetServerType write SetServerType;
C++
__property TServerType ServerType = {read=GetServerType, write=SetServerType, nodefault};
プロパティ
種類 | 可視性 | ソース | ユニット | 親 |
---|---|---|---|---|
property | protected | System.Win.ScktComp.pas System.Win.ScktComp.hpp |
System.Win.ScktComp | TCustomServerSocket |
説明
サーバーソケットによって受け入れられる各接続を非ブロッキング接続にするかどうか,あるいは,自動的に接続ごとに独立した実行スレッドが与えられようにするかどうかを指定します。
ServerType プロパティを stThreadBlocking に設定すると,サーバーソケットによって受け入れられるソケット接続ごとに新しいスレッドを自動的に生成できます。ServerType が stThreadBlocking ならば,接続スレッドの実行は読み書きの間にすべての情報がその接続で転送されるまで延期されます。各接続用のスレッドはサーバーソケットが読み書きを行うことが必要になったときに OnClientRead または OnClientWrite イベントを生成します。
ServerType を stNonBlocking に設定すると,ソケット接続でのすべての読み書きを非同期に処理できます。ServerType が stNonBlocking ならば,デフォルトですべてのクライアント接続は単一の実行スレッドで処理されます。OnClientRead または OnClientWrite イベントは,1 つの接続の相手側のクライアントソケットがその接続で情報を送受信しようとしたときに発生します。
読み書きをクライアントソケットと同期させる必要があるときには非ブロッキングソケットを使用します。
メモ: ServerType が stThreadBlocking ならば,OnClient... イベントハンドラのコードはスレッドセーフなコードであることが重要です。