SocketType 列挙型
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
Socket クラスのインスタンスが表すソケットの種類を指定します。
public enum class SocketType
public enum SocketType
type SocketType =
Public Enum SocketType
- 継承
フィールド
| 名前 | 値 | 説明 |
|---|---|---|
| Unknown | -1 | 不明な Socket 型を指定します。 |
| Stream | 1 | データの重複や境界の保持を伴わない、信頼性の高い双方向の接続ベースのバイト ストリームをサポートします。 この種類の Socket は 1 つのピアと通信し、通信を開始するにはリモート ホスト接続が必要です。
Stream は、伝送制御プロトコル ( |
| Dgram | 2 | 固定 (通常は小さい) 最大長のコネクションレスで信頼性の低いメッセージであるデータグラムをサポートします。 メッセージが失われたり、重複したりして、順不同で到着する可能性があります。
Socket型のDgramは、データの送受信前に接続を必要とせず、複数のピアと通信できます。
Dgram は、データグラム プロトコル ( |
| Raw | 3 | 基になるトランスポート プロトコルへのアクセスをサポートします。
Rawを使用すると、インターネット制御メッセージ プロトコル ( |
| Rdm | 4 | コネクションレス、メッセージ指向、確実に配信されるメッセージをサポートし、データ内のメッセージ境界を保持します。 Rdm (Reliably Delivered Messages) メッセージは、重複していない順序で到着します。 さらに、メッセージが失われた場合、送信者に通知されます。 Socketを使用してRdmを初期化する場合、データの送受信前にリモート ホスト接続は必要ありません。 Rdmを使用すると、複数のピアと通信できます。 |
| Seqpacket | 5 | ネットワーク経由で順序付けられたバイト ストリームの接続指向で信頼性の高い双方向転送を提供します。 Seqpacket はデータを複製せず、データ ストリーム内の境界を保持します。 Socket型のSeqpacketは 1 つのピアと通信し、通信を開始する前にリモート ホスト接続が必要です。 |
例
次の例では、SocketType.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.
Dim s As New Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp)
' Connects to host using IPEndPoint.
s.Connect(EPhost)
If Not s.Connected Then
strRetPage = "Unable to connect to host"
End If
' Use the SelectWrite enumeration to obtain Socket status.
If s.Poll(- 1, SelectMode.SelectWrite) Then
Console.WriteLine("This Socket is writable.")
Else
If s.Poll(- 1, SelectMode.SelectRead) Then
Console.WriteLine(("This Socket is readable. "))
Else
If s.Poll(- 1, SelectMode.SelectError) Then
Console.WriteLine("This Socket has an error.")
End If
End If
End If
注釈
Socketがデータを送受信するには、まず、AddressFamily、SocketType、およびProtocolTypeを使用して作成する必要があります。 SocketType列挙には、開くSocketの種類を定義するためのオプションがいくつか用意されています。
Note
SocketTypeは、ProtocolType内で使用されるAddressFamilyを暗黙的に示す場合があります。 たとえば、 System.Net.Sockets.SocketType が SocketType.Dgramされている場合、 System.Net.Sockets.ProtocolType は常に ProtocolType.Udp。 System.Net.Sockets.SocketTypeがSocketType.Streamされると、System.Net.Sockets.ProtocolTypeは常にProtocolType.Tcpされます。 互換性のない組み合わせで Socket を作成しようとすると、 Socket は SocketExceptionをスローします。