Socket クラスのインスタンスが表すソケットの種類を指定します。
<Serializable>
Public Enum SocketType
[C#]
[Serializable]
public enum SocketType
[C++]
[Serializable]
__value public enum SocketType
[JScript]
public
Serializable
enum SocketType
解説
データを送受信するには、 AddressFamily 、 SocketType 、および ProtocolType を使用して Socket を作成しておく必要があります。このとき、 SocketType 列挙値は、開く Socket の種類を定義するいくつかのオプションを提供します。
メモ SocketType は、どの ProtocolType が AddressFamily 内で使用されるかを暗黙的に示すことがあります。たとえば SocketType が Dgram の場合、 ProtocolType は常に Udp です。 SocketType が Stream の場合、 ProtocolType は常に Tcp です。互換性のない組み合わせで Socket を作成しようとすると、 Socket は SocketException をスローします。
メンバ
メンバ名 | 説明 |
---|---|
Dgram
.NET Compact Framework でもサポート。 |
データグラムをサポートしています。これはコネクションレスで、固定 (通常は短い) 最大長の、信頼性のないメッセージです。メッセージが失われるか複製されたり、正しい順序で受信されない可能性があります。 Dgram 型の Socket はデータの送受信に先立って接続する必要がなく、複数のピアと通信できます。 Dgram はデータグラム プロトコル (Udp) と InterNetwork AddressFamily を使用します。 |
Raw
.NET Compact Framework でもサポート。 |
基になるトランスポート プロトコルへのアクセスをサポートします。 SocketType Raw を使用すると、インターネット コントロール メッセージ プロトコル (Icmp) やインターネット グループ管理プロトコル (Igmp) などのプロトコルを使用して通信できます。ユーザーのアプリケーションが送信時に完全な IP ヘッダーを提供する必要があります。受信データグラムは IP ヘッダーとオプションをそのまま返します。 |
Rdm
.NET Compact Framework でもサポート。 |
コネクションレスでメッセージ指向の、配信の信頼性が高いメッセージをサポートし、データ内のメッセージ境界を維持します。Rdm (Reliably-Delivered Messages) メッセージは複製されず、順番に到着します。また、メッセージが失われたときには送信元に通知されます。 Rdm を使用して Socket を初期化した場合には、データの送受信の前にリモート ホストに接続しておく必要はありません。 Rdm では複数のピアと通信できます。 |
Seqpacket
.NET Compact Framework でもサポート。 |
ネットワーク全体に、順序付きバイト ストリームの、コネクション指向で信頼性の高い双方向転送を提供します。 Seqpacket はデータを複製せず、データ ストリーム内の境界を維持します。 Seqpacket 型の Socket は単一のピアと通信し、通信を開始する前にリモート ホスト接続を確立しておく必要があります。 |
Stream
.NET Compact Framework でもサポート。 |
データの複製および境界の維持を行うことなく、信頼性が高く双方向の、接続ベースのバイト ストリームをサポートします。この型の Socket は単一のピアと通信し、通信を開始する前にリモート ホスト接続を確立しておく必要があります。 Stream は伝送制御プロトコル (Tcp) ProtocolType および InterNetwork AddressFamily を使用します。 |
Unknown
.NET Compact Framework でもサポート。 |
不明な Socket 型を指定します。 |
使用例
[Visual Basic, C#, C++] Stream の列挙されたメンバを、 Socket コンストラクタへのパラメータとして使用する例を次に示します。
'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 should not print. Because this is not a listening Socket," + " no incoming connecton requests are expected. "))
Else
If s.Poll(- 1, SelectMode.SelectError) Then
Console.WriteLine("This Socket has an error.")
End If
End If
[C#]
//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 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.");
}
[C++]
//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 = S"Unable to connect to host";
}
// Use the SelectWrite enumeration to obtain Socket status.
if (s->Poll(-1, SelectMode::SelectWrite)) {
Console::WriteLine(S"This Socket is writable.");
} else if (s->Poll(-1, SelectMode::SelectRead)) {
Console::WriteLine(S"This should not print. Because this is not a listening Socket, "
S" no incoming connecton requests are expected.");
} else if (s->Poll(-1, SelectMode::SelectError)) {
Console::WriteLine(S"This Socket has an error.");
}
[JScript] JScript のサンプルはありません。Visual Basic、C#、および C++ のサンプルを表示するには、このページの左上隅にある言語のフィルタ ボタン をクリックします。
必要条件
名前空間: System.Net.Sockets
プラットフォーム: Windows 98, Windows NT 4.0, Windows Millennium Edition, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ, .NET Compact Framework - Windows CE .NET
アセンブリ: System (System.dll 内)
参照
System.Net.Sockets 名前空間 | AddressFamily | ProtocolType | Socket