SocketType Enum
Definition
Viktigt
En del information gäller för förhandsversionen av en produkt och kan komma att ändras avsevärt innan produkten blir allmänt tillgänglig. Microsoft lämnar inga garantier, uttryckliga eller underförstådda, avseende informationen som visas här.
Anger vilken typ av socket som en instans av Socket klassen representerar.
public enum class SocketType
public enum SocketType
type SocketType =
Public Enum SocketType
- Arv
Fält
| Name | Värde | Description |
|---|---|---|
| Unknown | -1 | Anger en okänd Socket typ. |
| Stream | 1 | Stöder tillförlitliga, dubbelriktade, anslutningsbaserade byteströmmar utan duplicering av data och utan bevarande av gränser. En Socket av den här typen kommunicerar med en enda peer och kräver en fjärrvärdanslutning innan kommunikationen kan börja.
Streamanvänder transmissionskontrollprotokollet ( |
| Dgram | 2 | Stöder datagram, som är anslutningslösa, opålitliga meddelanden med en fast (vanligtvis liten) maximal längd. Meddelanden kan gå förlorade eller dupliceras och kan komma ur ordning. En Socket typ kräver Dgram ingen anslutning innan data skickas och tas emot och kan kommunicera med flera peer-datorer.
Dgramanvänder Datagram Protocol ( |
| Raw | 3 | Stöder åtkomst till det underliggande transportprotokollet. Med kan Rawdu kommunicera med protokoll som Internet Control Message Protocol ( |
| Rdm | 4 | Stöder anslutningslösa, meddelandeorienterade, tillförlitligt levererade meddelanden och bevarar meddelandegränser i data. Rdm-meddelanden (tillförlitligt levererade meddelanden) anländer otillbörligt och i ordning. Dessutom meddelas avsändaren om meddelanden går förlorade. Om du initierar en Socket användning Rdmbehöver du ingen fjärrvärdanslutning innan du skickar och tar emot data. Med Rdmkan du kommunicera med flera peer-datorer. |
| Seqpacket | 5 | Tillhandahåller anslutningsorienterad och tillförlitlig dubbelriktad överföring av ordnade byteströmmar över ett nätverk. Seqpacket duplicerar inte data och bevarar gränser inom dataströmmen. En Socket typ kommunicerar Seqpacket med en enda peer och kräver en fjärrvärdanslutning innan kommunikationen kan börja. |
Exempel
I följande exempel används SocketType.Stream som en parameter för Socket konstruktorn.
//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
Kommentarer
Innan en Socket kan skicka och ta emot data måste den först skapas med hjälp av en AddressFamily, en SocketTypeoch en ProtocolType. Uppräkningen SocketType innehåller flera alternativ för att definiera vilken typ av Socket som du vill öppna.
Note
SocketType anger ibland implicit vilken som ProtocolType används i en AddressFamily. Till exempel, när System.Net.Sockets.SocketType är SocketType.Dgram, System.Net.Sockets.ProtocolType är alltid ProtocolType.Udp. System.Net.Sockets.SocketType När är SocketType.Streamär , System.Net.Sockets.ProtocolType är alltid ProtocolType.Tcp. Om du försöker skapa en Socket med en inkompatibel kombination Socket genererar en SocketException.