リピーターのアクティブ化

リピーター接続をアクティブにするには、通常、最初にサーバーを起動し、次にリピーターを起動してから、クライアントを起動します。

最初にリピーターを起動してから、サーバーを起動することもできます。 ただし、clicon パラメーターを使用して逆接続を確立していない限り、クライアントは常に最後に起動する必要があります。

ステップ 1: サーバーの起動

サーバーには、デバッグ サーバー、プロセス サーバー、または KD 接続サーバーを指定できます。 これは通常どおりに開始しますが、クライアントではなくリピーターへの接続にトランスポート プロトコル設定が使用される点が異なります。 詳細については、「デバッグ サーバーのアクティブ化」、「プロセス サーバーのアクティブ化」、または「KD 接続サーバーのアクティブ化」を参照してください。

サーバーの作成時にパスワードを使用した場合、このパスワードはクライアントのアタッチ時に必要になりますが、リピーターの作成時には必要ありません。

hidden パラメーターを使用すると、サーバーは通常どおり非表示になります。 リピーター自体は常に非表示になります。

ステップ 2: リピーターの起動

Windows 用のデバッグ ツールに含まれるリピーターは、DbEngPrx (dbengprx.exe) と呼ばれます。

DbEngPrx は、名前付きパイプ (NPIPE)、TCP、COM ポートを含むトランスポート プロトコルを理解します。

クライアントとサーバーで Secure Sockets Layer (SSL) プロトコルを使用している場合は、リピーターに TCP プロトコルを使用する必要があります。 クライアントとサーバーでセキュリティでセキュア パイプ (SPIPE) プロトコルを使用している場合は、リピーターに NPIPE プロトコルを使用する必要があります。 リピーターは、受信したデータをそのまま渡します。情報の解釈、暗号化、復号化は行いません。 すべての暗号化と復号化は、クライアントとサーバーによって行われます。

DbEnPrx コマンド ラインの構文は次のとおりです。

dbengprx [-p] -c ClientTransport -s ServerTransport

前述のコマンドのパラメーターには、次のような値があります。

-p
DbEngPrx へのすべての接続が切断された後でも、DbEngPrx は存在し続けます。

ClientTransport
サーバーへの接続に使用するプロトコル設定を指定します。 プロトコルは、サーバーの作成時に使用されたものと一致する必要があります。 プロトコルの構文は次のとおりです。

npipe:server=Server,pipe=PipeName[,password=Password] 
tcp:server=Server,port=Socket[,password=Password][,ipversion=6] 
tcp:clicon=Server,port=Socket[,password=Password][,ipversion=6] 
com:port=COMPort,baud=BaudRate,channel=COMChannel[,password=Password] 

このプロトコルのパラメーターの意味は次のとおりです。

[サーバー]
これは、サーバーが作成されたコンピューターのネットワーク名または IP アドレスです。 2 つの最初の円記号 (\) は省略可能です。

pipe= PipeName
NPIPE または SPIPE プロトコルを使用している場合、PipeName はサーバー作成時にパイプに与えられた名前です。

port= ソケット
TCP または SSL プロトコルを使用している場合、Socket は、サーバー作成時に使用したのと同じソケットポート番号になります。

clicon
サーバーが逆接続でリピーターに接続しようとすることを指定します。 ClientTransportclicon を使用するのは、サーバーが clicon を使用している場合のみです。 ほとんどの場合、逆接続が使用されると、リピーターがサーバーより先に起動されます。

port= COMPort
COM プロトコルを使用している場合、COMPort は、使用する COM ポートを指定します。 プレフィックス "COM" は省略可能です。たとえば、"com2" と "2" の両方が受け入れられます。

baud= BaudRate
COM プロトコルを使用している場合、BaudRate は、サーバー作成時に選択されたボー レートと一致する必要があります。

channel= COMChannel
COM プロトコルを使用している場合、COMChannel は、サーバー作成時に選択されたチャンネル番号と一致しなければならない。

password= パスワード
サーバーの作成時にパスワードが使用されていた場合、デバッグ クライアントを作成するには、Password を指定する必要があります。 パスワードは元のパスワードと一致する必要があります。 パスワードでは大文字と小文字が区別されます。 間違ったパスワードが指定された場合、エラー メッセージには "Error 0x80004005" と指定されます。

ipversion=6
(Windows 6.6.07 以前用のデバッグツールのみ) TCP を使用してインターネットに接続するときに、デバッガーに IP バージョン 4 でなく強制的にバージョン 6 を使用させます。 Windows Vista 以降のバージョンでは、デバッガーは自動的に IP バージョン 6 を既定値に設定しようとするため、このオプションは不要です。

ServerTransport
クライアントがリピーターに接続するときに使用されるプロトコル設定を指定します。 考えられるプロトコル構文は次のとおりです。

npipe:pipe=PipeName[,hidden][,password=Password][,IcfEnable] 
tcp:port=Socket[,hidden][,password=Password][,IcfEnable] 
tcp:port=Socket,clicon=Client[,password=Password] 
com:port=COMPort,baud=BaudRate,channel=COMChannel[,hidden][,password=Password] 

このプロトコルのパラメーターの意味は次のとおりです。

pipe= PipeName
NPIPE または SPIPE プロトコルを使用している場合、PipeName は、パイプの名前として機能する文字列です。 各パイプ名は、一意のリピーターを識別する必要があります。 パイプ名を再利用しようとすると、エラー メッセージが表示されます。 PipeName には、スペースまたは引用符を含めることはできません。 PipeNameに、数値の printf スタイルの書式コード (%x または%d ) を含めることができます。 リピーターはこれを DbEngPrx のプロセス ID に置き換えます。 このような 2 番目のコードは、DbEngPrx のスレッド ID に置き換えられます。

port= ソケット
TCP または SSL プロトコルを使用する場合、ソケット は、ソケットポート番号です。

コロンで区切られたポートの範囲を指定することもできます。 DbEngPrx は、この範囲内の各ポートが空いているかどうかをチェックします。 空きポートが見つかり、エラーが発生しなければ、リピーターが作成されます。 クライアントは、リピーターへの接続に使用されている実際のポートを指定する必要があります。 実際のポートを決定するには、リピーターを検索します。このリピーターが表示されると、ポートの後にコロンで区切られた 2 つの数字が続きます。 最初の番号は、実際に使用されるポートになります。2 番目は無視できます。 たとえば、ポートが =51:60 として指定され、ポート 53 が実際に使用されていると、検索結果には "port=53:60" が表示されます。 (clicon パラメーターを使用して逆接続を確立している場合、クライアントはこの方法でポートの範囲を指定できますが、リピーターは実際に使用されるポートを指定する必要があります。)

clicon=Client
TCP または SSL プロトコルを使用しclicon パラメーターを指定している場合は、逆方向の接続が開かれます。 これは、リピーターがクライアントに接続を開始させるのではなく、クライアントに接続しようとすることを意味します。 これは、通常の方向の接続を妨げているファイアウォールがある場合に便利です。 Client は、クライアントが存在するコンピューター、またはクライアントが作成されるコンピューターのネットワーク名または IP アドレスを指定します。 2 つの最初の円記号 (\) は省略可能です。

リピーターが 1 つの特定のクライアントを探しているため、このメソッドを使用する場合、リピーターに複数のクライアントを接続することはできません。 接続が拒否された場合、または切断された場合は、リピーターを再起動する必要があります。

clicon を使用する場合は、リピーターを作成する前にクライアントを起動するのが最善ですが、通常の順序 (クライアントの前にリピーター) でも構いません。

port= COMPort
COM プロトコルを使用している場合、COMPort は、使用する COM ポートを指定します。 プレフィックス "COM" は省略可能です。たとえば、"com2" と "2" の両方が受け入れられます。 ClientTransportServerTransport で同じ COM ポートを使用することはできません。

baud= BaudRate
COM プロトコルを使用している場合、BaudRate は、接続が実行されるボー レートを指定します。 ハードウェアでサポートされている任意のボー レートが許可されます。 ClientTransportServerTransport の両方で COM プロトコルを使用している場合は、異なるボー レートを指定できますが、当然ながら、クライアントとサーバーが互いに通信できる速度は遅いレートが制限になります。

channel= COMChannel
COM プロトコルを使用している場合、COMChannel は、クライアントとの通信に使用される COM チャネルを指定します。 0 から 254 までの任意の値を指定できます。 異なるチャネル番号を使用して複数の接続に対して 1 つの COM ポートを使用することができます。 (これは、デバッグ ケーブルの COM ポートの使用とは異なります。その状況では、COM ポート内のチャネルを使用することはできません。)

hidden
別のデバッガーがすべてのアクティブなサーバーを表示するときに、サーバーが表示されないようにします。

password= パスワード
デバッグ セッションに接続するために指定されたパスワードを指定するクライアントを必要とします。 Password には、任意の英数字の文字列を指定できます。

IcfEnable
インターネット接続ファイアウォールがアクティブな場合に、TCP または名前付きパイプ通信に必要なポート接続を有効にします。 既定では、インターネット接続ファイアウォールはこれらのプロトコルで使用されるポートを無効にします。 IcfEnable が TCP 接続で使用されていると、デバッガーは Windows に Socket パラメーターで指定されたポートを開かせます。 IcfEnable が名前付きパイプ接続で使用されている場合、デバッガーは Windows に名前付きパイプに使用されるポート (ポート 139 および 445) を開かせます。 接続が終了しても、デバッガーはこれらのポートを閉じません。

ステップ 3: クライアントの起動

クライアントは、サーバーの種類に対応するデバッグ クライアントまたはスマート クライアントである必要があります。 詳細については、「デバッグ クライアントのアクティブ化」、「スマート クライアントのアクティブ化」、または「スマート クライアントのアクティブ化 (カーネル モード)」を参照してください。

サーバーが接続を拒否した場合 (たとえば、間違ったパスワードを入力した場合)、リピーターとクライアントの両方がシャットダウンします。 サーバーとの接続を再確立するには、両方を再起動する必要があります。