SocketType 列挙型

定義

Socket クラスのインスタンスが表すソケットの種類を指定します。

public enum class SocketType
public enum SocketType
type SocketType = 
Public Enum SocketType
継承
SocketType

フィールド

名前 説明
Unknown -1

不明な Socket 型を指定します。

Stream 1

データの重複や境界の保持を伴わない、信頼性の高い双方向の接続ベースのバイト ストリームをサポートします。 この種類の Socket は 1 つのピアと通信し、通信を開始するにはリモート ホスト接続が必要です。 Stream は、伝送制御プロトコル (ProtocolType.Tcp) と AddressFamily.InterNetwork アドレス ファミリを使用します。

Dgram 2

固定 (通常は小さい) 最大長のコネクションレスで信頼性の低いメッセージであるデータグラムをサポートします。 メッセージが失われたり、重複したりして、順不同で到着する可能性があります。 Socket型のDgramは、データの送受信前に接続を必要とせず、複数のピアと通信できます。 Dgram は、データグラム プロトコル (ProtocolType.Udp) と AddressFamily.InterNetwork アドレス ファミリを使用します。

Raw 3

基になるトランスポート プロトコルへのアクセスをサポートします。 Rawを使用すると、インターネット制御メッセージ プロトコル (ProtocolType.Icmp) やインターネット グループ管理プロトコル (ProtocolType.Igmp) などのプロトコルを使用して通信できます。 送信時にアプリケーションで完全な IP ヘッダーを指定する必要があります。 受信したデータグラムは、IP ヘッダーとオプションをそのまま使用して返されます。

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がデータを送受信するには、まず、AddressFamilySocketType、およびProtocolTypeを使用して作成する必要があります。 SocketType列挙には、開くSocketの種類を定義するためのオプションがいくつか用意されています。

Note

SocketTypeは、ProtocolType内で使用されるAddressFamilyを暗黙的に示す場合があります。 たとえば、 System.Net.Sockets.SocketTypeSocketType.Dgramされている場合、 System.Net.Sockets.ProtocolType は常に ProtocolType.UdpSystem.Net.Sockets.SocketTypeSocketType.Streamされると、System.Net.Sockets.ProtocolTypeは常にProtocolType.Tcpされます。 互換性のない組み合わせで Socket を作成しようとすると、 SocketSocketExceptionをスローします。

適用対象

こちらもご覧ください