TcpServerChannel クラス
メッセージを送信するために TCP プロトコルを使用するサーバー チャネルの実装を提供します。
この型のすべてのメンバの一覧については、TcpServerChannel メンバ を参照してください。
System.Object
System.Runtime.Remoting.Channels.Tcp.TcpServerChannel
Public Class TcpServerChannel
Implements IChannelReceiver, IChannel
[C#]
public class TcpServerChannel : IChannelReceiver, IChannel
[C++]
public __gc class TcpServerChannel : public IChannelReceiver,
IChannel
[JScript]
public class TcpServerChannel implements IChannelReceiver, IChannel
スレッドセーフ
この型の public static (Visual Basicでは Shared) のすべてのメンバは、マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。
解説
既定では、 TcpServerChannel は、バイナリ形式のメッセージまたは SOAP 形式のメッセージを受け入れます。
チャネルは、アプリケーション ドメイン、プロセス、コンピュータなどのリモート処理境界を超えて、アプリケーション間でメッセージを転送します。このような転送には、着信と発信の両方があります。現在のチャネルは、エンド ポイントで着信メッセージを待機します。 TcpServerChannel は、TCP プロトコルを使用して、通過するメッセージをバイナリ形式からメッセージ オブジェクトに変換します。
チャネルの両端に共通言語ランタイムがある場合、境界の両側のクライアント チェインとサーバー シンク チェインを接続するために、セッションはこの両端の間で作成されます。チャネルのクライアント部分は、クライアント コンテキスト シンク チェインの末尾に配置されます。チャネルのサーバー部分は、サーバー コンテキスト シンク チェインの先頭にあります。メッセージは、クライアント チャネルに配信され、このチャネルを経由した後、 TcpServerChannel のインスタンスによって受信されます。その後、このチャネルは、受信後に逆シリアル化したメッセージを最初のサーバー コンテキスト シンクに配信します。
IChannel 実装は、チャネル構成プロパティを使用して、実行時にチャネルを構成します。チャネル プロパティは、構成ファイルで指定したり、 IDictionary 内でプログラムによって指定したりできます。構成ファイルではすべての値が文字列によって表されますが、 IDictionary プロパティをプログラムによって構築する場合は、値型をネイティブな値または文字列で指定できます。
現在のチャネルに対して指定できるチャネル構成プロパティを次の表に示します。
プロパティ | 説明 |
---|---|
name | チャネルの名前を示します。このプロパティは、 GetChannel を呼び出したときに、指定したチャネルを取得するために使用します。このプロパティが設定されている場合、システムの既定値は "http" になります。複数の HttpChannel を登録する場合は、各チャネルに一意の名前を付ける必要があります。名前を無視するが、名前付け規則に違反しないようにする場合は、このプロパティに Empty 文字列 ("") を設定します。システム上に、名前が String.Empty のチャネルはいくつあってもかまいません。 |
priority | このチャネルに割り当てられている優先順位を表す整数。サーバー チャネルでは、チャネル データが ObjRef に表示される順序が、優先順位によって制御されます。クライアントは、 ObjRef にリストされている順序でサーバー チャネルに接続しようとします。既定の優先順位は 1 で、負の数も指定できます。既定の優先順位は 1 で、負の数も指定できます。 |
port | チャネルが待機するポートを指定する整数。空いているポートをリモート システムが自動的に選択するようにするには、ポート "0" を指定します。これによって、動的に割り当てられたポートで要求を待機する TcpServerChannel インスタンスが作成されます。これは通常、 TcpServerChannel がコールバック メソッドを待機していることを確認するために、クライアント側で実行されます。 |
supressChannelData | true または false 。チャネルが ChannelData に関与しないことを指定します。 |
useIpAddress | true または false 。チャネルが、公開 URL 内に、コンピュータ名の代わりに IP アドレスを使用するかどうかを指定します。 |
rejectRemoteRequests | true または false 。他のコンピュータから発生する要求を拒否するかどうかを指定します。 true を指定すると、ローカル コンピュータでの AppDomain 内呼び出しだけが許可されます。 |
bindTo | 現在のコンピュータへと解決され、現在のチャネルをバインドする対象の NIC を指定する IP アドレス。 |
machineName | 現在のチャネルで使用するコンピュータ名を指定する文字列。 useIpAddress 構成プロパティとコンピュータ名を表すチャネル データ オブジェクトをオーバーライドします。 |
exclusiveAddressUse | true または false 。 SocketOptionName サーバー ソケット オプションに SocketOptionName.ExclusiveAddressUse を設定することによって、サーバーで他のアプリケーションが同じ IP アドレスとポートの組み合わせを使用できないようにするかどうかを指定します。既定値は true です。
このプロパティは、Windows NT 4.0 Service Pack 4 以降、Windows Millennium Edition、Windows 2000、Windows XP Home Edition、Windows XP Professional、Windows Server 2003 ファミリの各プラットフォーム上の .NET Framework Version 1.1 でだけサポートされます。 Windows Server 2003 ファミリ以前のプラットフォームの場合、このプロパティには管理者権限が必要です。 |
必要条件
名前空間: System.Runtime.Remoting.Channels.Tcp
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ
アセンブリ: System.Runtime.Remoting (System.Runtime.Remoting.dll 内)
参照
TcpServerChannel メンバ | System.Runtime.Remoting.Channels.Tcp 名前空間