SocketType 列挙型
定義
重要
一部の情報は、リリース前に大きく変更される可能性があるプレリリースされた製品に関するものです。 Microsoft は、ここに記載されている情報について、明示または黙示を問わず、一切保証しません。
Socket クラスのインスタンスが表すソケットの種類を指定します。
public enum class SocketType
public enum SocketType
type SocketType =
Public Enum SocketType
- 継承
フィールド
Dgram | 2 | データグラムをサポートしています。これはコネクションレスで、固定 (通常は短い) 最大長の、信頼性のないメッセージです。 メッセージが喪失または複製されたり、正しい順序で受信されなかったりする可能性があります。
Socket 型の Dgram はデータの送受信に先立って接続する必要がなく、複数のピアと通信できます。
Dgramは、データグラム プロトコル ( |
Raw | 3 | 基になるトランスポート プロトコルへのアクセスをサポートします。
Raw を使用すると、インターネット コントロール メッセージ プロトコル ( |
Rdm | 4 | コネクションレスでメッセージ指向の、配信の信頼性が高いメッセージをサポートし、データ内のメッセージ境界を維持します。 Rdm (Reliably Delivered Messages) メッセージは複製されず、順番に到着します。 また、メッセージが失われたときには送信元に通知されます。 Rdm を使用して Socket を初期化した場合には、データの送受信の前にリモート ホストに接続しておく必要はありません。 Rdm では複数のピアと通信できます。 |
Seqpacket | 5 | ネットワーク全体に、順序付きバイト ストリームの、コネクション指向で信頼性の高い双方向転送を提供します。 Seqpacket はデータを複製せず、データ ストリーム内の境界を維持します。 Seqpacket 型の Socket は単一のピアと通信し、通信を開始する前にリモート ホスト接続を確立しておく必要があります。 |
Stream | 1 | データの複製および境界の維持を行うことなく、信頼性が高く双方向の、接続ベースのバイト ストリームをサポートします。 この種類の Socket は、単一のピアと通信し、通信を開始する前にリモート ホスト接続を確立しておく必要があります。
Streamは、伝送制御プロトコル ( |
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.ProtocolType はSocketType.Dgram常に ProtocolType.Udpです。 が のSystem.Net.Sockets.SocketTypeSocketType.Stream場合、 System.Net.Sockets.ProtocolType は常に ProtocolType.Tcpです。 互換性のない組み合わせを使用して を作成 Socket しようとすると、 Socket がスローされます SocketException。
適用対象
こちらもご覧ください
.NET