SocketType Enum

Definition

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
SocketType

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 (ProtocolType.Tcp) och .AddressFamily adressfamiljenInterNetwork.

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 (ProtocolType.Udp) och .AddressFamily adressfamiljenInterNetwork.

Raw 3

Stöder åtkomst till det underliggande transportprotokollet. Med kan Rawdu kommunicera med protokoll som Internet Control Message Protocol (ProtocolType.Icmp) och Internet Group Management Protocol (ProtocolType.Igmp). Programmet måste ange ett fullständigt IP-huvud när det skickas. Mottagna datagram returneras med IP-huvudet och alternativen intakta.

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.

Gäller för

Se även