SocketType 列挙体
アセンブリ: System (system.dll 内)
| メンバ名 | 説明 | |
|---|---|---|
|
Dgram | データグラムをサポートしています。これはコネクションレスで、固定 (通常は短い) 最大長の、信頼性のないメッセージです。メッセージが失われるか複製されたり、正しい順序で受信されない可能性があります。Dgram 型の Socket はデータの送受信に先立って接続する必要がなく、複数のピアと通信できます。Dgram はデータグラム プロトコル (Udp) と InterNetworkAddressFamily を使用します。 |
|
Raw | 基になるトランスポート プロトコルへのアクセスをサポートします。SocketTypeRaw を使用すると、インターネット コントロール メッセージ プロトコル (Icmp) やインターネット グループ管理プロトコル (Igmp) などのプロトコルを使用して通信を行うことができます。ユーザーのアプリケーションが送信時に完全な IP ヘッダーを提供する必要があります。受信データグラムは IP ヘッダーとオプションをそのまま返します。 |
|
Rdm | コネクションレスでメッセージ指向の、配信の信頼性が高いメッセージをサポートし、データ内のメッセージ境界を維持します。Rdm (Reliably Delivered Messages) メッセージは複製されず、順番に到着します。また、メッセージが失われたときには送信元に通知されます。Rdm を使用して Socket を初期化した場合には、データの送受信の前にリモート ホストに接続しておく必要はありません。Rdm では複数のピアと通信できます。 |
|
Seqpacket | ネットワーク全体に、順序付きバイト ストリームの、コネクション指向で信頼性の高い双方向転送を提供します。Seqpacket はデータを複製せず、データ ストリーム内の境界を維持します。Seqpacket 型の Socket は単一のピアと通信し、通信を開始する前にリモート ホスト接続を確立しておく必要があります。 |
|
Stream | データの複製および境界の維持を行うことなく、信頼性が高く双方向の、接続ベースのバイト ストリームをサポートします。この型の Socket は単一のピアと通信し、通信を開始する前にリモート ホスト接続を確立しておく必要があります。Stream は伝送制御プロトコル (Tcp) ProtocolType および InterNetworkAddressFamily を使用します。 |
|
Unknown | 不明な Socket 型を指定します。 |
データを送受信するには、AddressFamily、SocketType、および ProtocolType を使用して Socket を作成しておく必要があります。このとき、SocketType 列挙値は、開く Socket の種類を定義するいくつかのオプションを提供します。
メモ |
|---|
| SocketType は、どの ProtocolType が AddressFamily 内で使用されるかを暗黙的に示すことがあります。たとえば SocketType が Dgram の場合、ProtocolType は常に Udp です。SocketType が Stream の場合、ProtocolType は常に Tcp です。互換性のない組み合わせで Socket を作成しようとすると、Socket は SocketException をスローします。 |
Stream の列挙されたメンバを、Socket コンストラクタへのパラメータとして使用する例を次に示します。
//Creates the Socket for sending data over TCP. Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp ); // Connects to host using IPEndPoint. s.Connect(EPhost); if (!s.Connected) { strRetPage = "Unable to connect to host"; } // Use the SelectWrite enumeration to obtain Socket status. if(s.Poll(-1, SelectMode.SelectWrite)){ Console.WriteLine("This Socket is writable."); } else if (s.Poll(-1, SelectMode.SelectRead)){ Console.WriteLine("This Socket is readable." ); } else if (s.Poll(-1, SelectMode.SelectError)){ Console.WriteLine("This Socket has an error."); }
//Creates the Socket for sending data over TCP.
Socket s = new Socket(AddressFamily.InterNetwork, SocketType.Stream,
ProtocolType.Tcp);
// Connects to host using IPEndPoint.
s.Connect(epHost);
if (!(s.get_Connected())) {
strRetPage = "Unable to connect to host";
}
// Use the SelectWrite enumeration to obtain Socket status.
if (s.Poll(-1, SelectMode.SelectWrite)) {
Console.WriteLine("This Socket is writable.");
}
else {
if (s.Poll(-1, SelectMode.SelectRead)) {
Console.WriteLine("This should not print."
+ "Because this is not a listening Socket,"
+ " no incoming connecton requests are expected. ");
}
else {
if (s.Poll(-1, SelectMode.SelectError)) {
Console.WriteLine("This Socket has an error.");
}
}
}
Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile for Pocket PC, Windows Mobile for Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition
開発プラットフォームの中には、.NET Framework によってサポートされていないバージョンがあります。サポートされているバージョンについては、「システム要件」を参照してください。
