SocketType Énumération

Définition

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

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

Champs

Nom Valeur Description
Unknown -1

Spécifie un type inconnu Socket .

Stream 1

Prend en charge des flux d’octets basés sur des connexions fiables et bidirectionnelles sans duplication de données et sans conservation des limites. Un Socket de ce type communique avec un seul homologue et nécessite une connexion hôte distante avant de commencer la communication. Streamutilise le protocole de contrôle de transmission (ProtocolType.Tcp) et la famille d’adresses AddressFamily.InterNetwork

Dgram 2

Prend en charge les datagrammes, qui sont des messages de connexion sans fiabilité d’une longueur maximale fixe (généralement petite). Les messages peuvent être perdus ou dupliqués et peuvent arriver hors de commande. Un Socket type Dgram ne nécessite aucune connexion avant l’envoi et la réception de données, et peut communiquer avec plusieurs homologues. Dgramutilise le protocole Datagram (ProtocolType.Udp) et la famille d’adresses AddressFamily.InterNetwork

Raw 3

Prend en charge l’accès au protocole de transport sous-jacent. À l’aide Rawde , vous pouvez communiquer à l’aide de protocoles tels que 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 intactes.

Rdm 4

Prend en charge les messages sans connexion, orientés messages, remis de manière fiable et conserve les limites des messages dans les données. Les messages Rdm (messages remis de manière fiable) arrivent sans suppression et dans l’ordre. En outre, l’expéditeur est averti si les messages sont perdus. Si vous initialisez une Socket utilisation Rdm, vous n’avez pas besoin d’une connexion hôte distante avant d’envoyer et de recevoir des données. Avec Rdm, vous pouvez communiquer avec plusieurs homologues.

Seqpacket 5

Fournit un transfert bidirectionnel orienté connexion et fiable de flux d’octets ordonnés sur un réseau. Seqpacket ne doublons pas de données et conserve les limites au sein du flux de données. Un Socket type communique Seqpacket avec un seul homologue et nécessite une connexion hôte distante avant de commencer la communication.

Exemples

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

//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 , d’un SocketTypeet d’un ProtocolType. L’énumération SocketType fournit plusieurs options pour définir le type de Socket celui que vous envisagez d’ouvrir.

Note

SocketType indique parfois implicitement qui ProtocolType est utilisé dans un AddressFamily. Par exemple, lorsque l’objet System.Net.Sockets.SocketType est SocketType.Dgram, il System.Net.Sockets.ProtocolType est toujours ProtocolType.Udp. Quand l’est System.Net.Sockets.SocketTypeSocketType.Stream, le System.Net.Sockets.ProtocolType est toujours ProtocolType.Tcp. Si vous essayez de créer une Socket combinaison avec une combinaison incompatible, Socket lève un SocketException.

S’applique à

Voir aussi