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
| Nome | Valore | Descrizione |
|---|---|---|
| Unknown | -1 | Specifica un tipo sconosciuto Socket . |
| Stream | 1 | Supporta flussi di byte affidabili, bidirezionali e basati sulla connessione senza la duplicazione dei dati e senza la conservazione dei limiti. Un Socket oggetto di questo tipo comunica con un singolo peer e richiede una connessione host remota prima di poter iniziare la comunicazione.
Streamutilizza il protocollo transmission control ( |
| Dgram | 2 | Supporta i datagrammi, che non sono connessioni, messaggi non affidabili di lunghezza massima fissa (in genere piccola). I messaggi potrebbero essere persi o duplicati e potrebbero arrivare non in ordine. Un Socket di tipo Dgram non richiede alcuna connessione prima di inviare e ricevere dati e può comunicare con più peer.
Dgramusa il protocollo Datagram ( |
| Raw | 3 | Supporta l'accesso al protocollo di trasporto sottostante. Usando Raw, è possibile comunicare usando protocolli come Internet Control Message Protocol ( |
| Rdm | 4 | Supporta messaggi senza connessione, orientati ai messaggi, recapitati in modo affidabile e mantiene i limiti dei messaggi nei dati. I messaggi Rdm (Messaggi recapitati in modo affidabile) arrivano non replicati e in ordine. Inoltre, il mittente riceve una notifica se i messaggi vengono persi. Se si inizializza un Socket oggetto utilizzando Rdm, non è necessaria una connessione host remota prima di inviare e ricevere dati. Con Rdmè possibile comunicare con più peer. |
| Seqpacket | 5 | Fornisce il trasferimento bidirezionale orientato alla connessione di flussi di byte ordinati in una rete. Seqpacket non duplica i dati e mantiene i limiti all'interno del flusso di dati. Un Socket di tipo Seqpacket comunica con un singolo peer e richiede una connessione host remota prima di poter iniziare la comunicazione. |
Esempio
Nell'esempio seguente viene SocketType.Stream usato come parametro per il Socket costruttore .
//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
Prima che un Socket oggetto possa inviare e ricevere dati, è necessario creare un AddressFamilyoggetto , SocketTypeun oggetto e un oggetto ProtocolType. L'enumerazione SocketType offre diverse opzioni per definire il tipo di Socket che si intende aprire.
Note
SocketType talvolta indica in modo implicito quale ProtocolType viene usato all'interno di un oggetto AddressFamily. Ad esempio, quando System.Net.Sockets.SocketType è SocketType.Dgram, è System.Net.Sockets.ProtocolType sempre ProtocolType.Udp. System.Net.Sockets.SocketType Quando è SocketType.Stream, è System.Net.Sockets.ProtocolType sempre ProtocolType.Tcp. Se si tenta di creare un oggetto Socket con una combinazione incompatibile, Socket genera un'eccezione SocketException.