次の方法で共有


SocketType 列挙体

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

<Serializable>
Public Enum SocketType
[C#]
[Serializable]
public enum SocketType
[C++]
[Serializable]
__value public enum SocketType
[JScript]
public
   Serializable
enum SocketType

解説

データを送受信するには、 AddressFamilySocketType 、および ProtocolType を使用して Socket を作成しておく必要があります。このとき、 SocketType 列挙値は、開く Socket の種類を定義するいくつかのオプションを提供します。

メモ    SocketType は、どの ProtocolTypeAddressFamily 内で使用されるかを暗黙的に示すことがあります。たとえば SocketTypeDgram の場合、 ProtocolType は常に Udp です。 SocketTypeStream の場合、 ProtocolType は常に Tcp です。互換性のない組み合わせで Socket を作成しようとすると、 SocketSocketException をスローします。

メンバ

メンバ名 説明
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