SocketType Enumerazione
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Specifica il tipo di socket rappresentato da un'istanza della classe Socket.
public enum class SocketType
public enum SocketType
type SocketType =
Public Enum SocketType
- Ereditarietà
Campi
Dgram | 2 | Supporta datagrammi, che sono messaggi senza connessione, non affidabili di lunghezza massima fissa (generalmente piccola). I messaggi potrebbero essere persi o duplicati e potrebbero arrivare non nell'ordine corretto. Un oggetto Socket di tipo Dgram non richiede alcuna connessione prima dell'invio e della ricezione dei dati ed è in grado di comunicare con più peer.
Dgramusa il protocollo Datagram ( |
Raw | 3 | Supporta l'accesso al protocollo di trasporto sottostante. L'uso di Raw consente di comunicare tramite protocolli come Internet Control Message Protocol ( |
Rdm | 4 | Supporta messaggi senza connessione, orientati ai messaggi e consegnati in modo affidabile; inoltre conserva i limiti del messaggio nei dati. I messaggi Rdm ( Reliably-Delivered Messages) arrivano non duplicati e nell'ordine corretto. Inoltre, il mittente viene avvisato se i messaggi vengono persi. Se si inizializza un Socket utilizzando Rdm, non sarà necessario stabilire una connessione all'host remoto prima di inviare e ricevere dati. Con Rdm è possibile comunicare con più peer. |
Seqpacket | 5 | Fornisce il trasferimento bidirezionale orientato alla connessione e affidabile di flussi di byte ordinati in una rete. Seqpacket non duplica i dati e preserva i limiti all'interno del flusso di dati. Un Socket di tipo Seqpacket comunica con un unico peer e richiede una connessione all'host remoto prima di poter iniziare una comunicazione. |
Stream | 1 | Supporta flussi di byte affidabili, a due vie e orientati alla connessione senza la duplicazione di dati e senza la conservazione dei limiti. Un oggetto Socket di questo tipo comunica con un unico peer e richiede una connessione all'host remoto prima di poter avviare una comunicazione.
Streamusa il protocollo di controllo di trasmissione ( |
Unknown | -1 | Specifica un tipo di Socket sconosciuto. |
Esempio
Nell'esempio seguente viene SocketType.Stream usato come parametro per il Socket costruttore.
//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
Commenti
Socket Prima di poter inviare e ricevere dati, è necessario prima di tutto creare un AddressFamilyoggetto , un SocketTypee un ProtocolTypeoggetto . L'enumerazione SocketType offre diverse opzioni per definire il tipo di Socket che si intende aprire.
Nota
SocketType talvolta indica in modo implicito quale ProtocolType viene usato all'interno di un AddressFamilyoggetto . Ad esempio, quando è , l'oggetto System.Net.Sockets.SocketTypeSystem.Net.Sockets.ProtocolTypeSocketType.Dgramè sempre ProtocolType.Udp. Quando l'oggetto System.Net.Sockets.SocketType è SocketType.Stream, è System.Net.Sockets.ProtocolType sempre ProtocolType.Tcp. Se si tenta di creare un oggetto Socket con una combinazione incompatibile, Socket genera un SocketExceptionoggetto .