SocketType Énumération

Définition

Spécifie le type de socket que représente une instance de la classe Socket.

public enum class SocketType
public enum SocketType
type SocketType = 
Public Enum SocketType
Héritage
SocketType

Champs

Dgram 2

Prend en charge des datagrammes, qui sont des messages peu fiables, sans connexion, d'une longueur maximale fixe (généralement réduite). Des messages pourraient être perdus ou dupliqués et arriver dans le désordre. Un Socket de type Dgram ne requiert aucune connexion avant d'envoyer et de recevoir des données, et peut communiquer avec plusieurs homologues. Dgramutilise le protocole Datagram Protocol (ProtocolType.Udp) et la famille d’adresses AddressFamily.InterNetwork

Raw 3

Prend en charge l'accès au protocole de transport sous-jacent. En utilisant Raw, vous pouvez communiquer au moyen de protocoles comme Internet Control Message Protocol (ProtocolType.Icmp) et Internet Group Management Protocol (ProtocolType.Igmp). Votre application doit fournir un en-tête IP complet lors de l'envoi. Les datagrammes reçus retournent avec l'en-tête IP et les options intacts.

Rdm 4

Prend en charge des messages sans connexion, orientés message, livrés avec fiabilité, et préserve les limites de message dans les données. Les messages Rdm (Reliably Delivered Messages) arrivent non dupliqués et dans l'ordre. En outre, l'émetteur est averti si des messages sont perdus. Si vous initialisez Socket à l'aide de Rdm, vous n'avez pas besoin d'une connexion d'hôte pour envoyer et recevoir des données. Avec Rdm, vous pouvez communiquer avec plusieurs homologues.

Seqpacket 5

Fournit un mécanisme de transfert bidirectionnel orienté connexion et fiable pour les flux d'octets ordonnés sur un réseau. Seqpacket ne duplique pas les données et conserve les limites dans le flux de données. Un Socket de type Seqpacket communique avec un homologue unique et nécessite une connexion d'hôte distant pour permettre le début d'une communication.

Stream 1

Prend en charge les flux d'octets fiables, bidirectionnels, orientés connexion sans la duplication de données et sans préservation de limites. Un Socket de ce type communique avec un homologue unique et nécessite une connexion d'hôte distant avant que la communication puisse débuter. Streamutilise le protocole de contrôle de transmission (ProtocolType.Tcp) et la famille d’adresses AddressFamily.InterNetwork

Unknown -1

Spécifie un type Socket inconnu.

Exemples

L’exemple suivant utilise SocketType.Stream comme paramètre pour le Socket constructeur.

//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

Remarques

Avant de Socket pouvoir envoyer et recevoir des données, il doit d’abord être créé à l’aide d’un AddressFamily, d’un SocketTypeet d’un ProtocolType. L’énumération SocketType fournit plusieurs options pour définir le type de Socket que vous envisagez d’ouvrir.

Notes

SocketType indique parfois implicitement lequel ProtocolType est utilisé dans un AddressFamily. Par exemple, lorsque a la System.Net.Sockets.SocketType valeur SocketType.Dgram, est toujours .ProtocolType.UdpSystem.Net.Sockets.ProtocolType Lorsque a la System.Net.Sockets.SocketType valeur SocketType.Stream, est toujours .ProtocolType.TcpSystem.Net.Sockets.ProtocolType Si vous essayez de créer un Socket avec une combinaison incompatible, Socket lève un SocketException.

S’applique à

Voir aussi