SocketType Énumération
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
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
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 ( |
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 ( |
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 ( |
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.