ソケットを使用した接続の指定
アプリケーション サーバーへの接続 への移動
TCP/IP アドレスを持っているどのようなマシンからでも、ソケットを使ってアプリケーション サーバーへの接続を確立することができます。この方法は、より多くのマシンに適用できるという利点がありますが、セキュリティ プロトコルの使用には対応していません。ソケットを使用する場合は、アプリケーション サーバーに接続するための TSocketConnection コンポーネントを組み込みます。
TSocketConnection では、サーバー システムの IP アドレスまたはホスト名と、サーバー マシン上で動作しているソケット ディスパッチャ プログラム(Scktsrvr.exe)のポート番号を使って、サーバー マシンを識別します。IP アドレスおよびポート値の詳細については、「ソケットの記述」を参照してください。
TSocketConnection の 3 つのプロパティは次の情報を指定します。
- Address -- サーバーの IP アドレスを指定します。
- Host -- サーバーのホスト名を指定します。
- Port -- アプリケーション サーバー上のソケット ディスパッチャ プログラムのポート番号を指定します。
Address と Host は相互排他的です(同時には使用できません)。一方の値を設定すると、もう一方の値の設定が解除されます。どちらを使用するかについては、「ホストの記述」を参照してください。
クライアント アプリケーションで選択できるサーバーが複数ある場合は、接続ブローカを使用できます。
デフォルトでは、Port の値は 211 です。これは、着信するメッセージをアプリケーション サーバーに転送するソケット ディスパッチャ プログラムのデフォルトのポート番号です。ソケット ディスパッチャが別のポートを使用するように構成されている場合は、Port プロパティを、その値と一致するように設定します。
メモ: Embarcadero Socket Server トレイ アイコンを右クリックし、[プロパティ]を選択すると、ソケット ディスパッチャの動作中でもそのポートを構成することができます。
ソケット接続はセキュリティ プロトコルの使用に対応していませんが、ソケット接続をカスタマイズして、独自の暗号化を付け加えることができます。
独自の暗号化を付け加えるには:
- IDataIntercept インターフェイスをサポートする COM オブジェクトを作成します。これは、データを暗号化および復号化するためのインターフェイスです。
- TPacketInterceptFactory を、このオブジェクトのクラス ファクトリとして使用します。ステップ 1 でウィザードを使用して COM オブジェクトを作成した場合は、初期化セクションの TComponentFactory.Create(...) という行を TPacketInterceptFactory.Create(...) に置き換えます。
- 新しい COM サーバーをクライアント マシンに登録します。
- ソケット接続コンポーネントの InterceptName プロパティまたは InterceptGUID プロパティを、この COM オブジェクトを指定するように設定します。ステップ 2 で TPacketInterceptFactory を使用した場合は、[オブジェクト インスペクタ]で、InterceptName プロパティのドロップダウン リストにお使いの COM サーバーが表示されます。
- 最後に、Embarcadero Socket Server トレイ アイコンを右クリックして[プロパティ]を選択し、[プロパティ]タブで、[インターセプト名]または[インターセプト GUID]をインターセプタの ProgId または GUID と同じ値に設定します。
これと同じ方法をデータの圧縮および解凍にも使用することができます。