次の方法で共有


SocketType 列挙型

定義

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

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

フィールド

Dgram 2

データグラムをサポートしています。これはコネクションレスで、固定 (通常は短い) 最大長の、信頼性のないメッセージです。 メッセージが喪失または複製されたり、正しい順序で受信されなかったりする可能性があります。 Socket 型の Dgram はデータの送受信に先立って接続する必要がなく、複数のピアと通信できます。 Dgramは、データグラム プロトコル (ProtocolType.Udp) と アドレスInterNetwork ファミリをAddressFamily使用します。

Raw 3

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

Rdm 4

コネクションレスでメッセージ指向の、配信の信頼性が高いメッセージをサポートし、データ内のメッセージ境界を維持します。 Rdm (Reliably Delivered Messages) メッセージは複製されず、順番に到着します。 また、メッセージが失われたときには送信元に通知されます。 Rdm を使用して Socket を初期化した場合には、データの送受信の前にリモート ホストに接続しておく必要はありません。 Rdm では複数のピアと通信できます。

Seqpacket 5

ネットワーク全体に、順序付きバイト ストリームの、コネクション指向で信頼性の高い双方向転送を提供します。 Seqpacket はデータを複製せず、データ ストリーム内の境界を維持します。 Seqpacket 型の Socket は単一のピアと通信し、通信を開始する前にリモート ホスト接続を確立しておく必要があります。

Stream 1

データの複製および境界の維持を行うことなく、信頼性が高く双方向の、接続ベースのバイト ストリームをサポートします。 この種類の Socket は、単一のピアと通信し、通信を開始する前にリモート ホスト接続を確立しておく必要があります。 Streamは、伝送制御プロトコル (ProtocolType.Tcp) と アドレスInterNetwork ファミリをAddressFamily使用します。

Unknown -1

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

次の例では、 をコンストラクターのSocketパラメーターとして 使用SocketType.Streamしています。

//Creates the Socket for sending data over TCP.
Socket^ s = gcnew 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.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 型を定義するためのオプションがいくつか用意されています。

注意

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

適用対象

こちらもご覧ください