Specifies the type of socket that an instance of the Socket class represents.
Assembly: System (in System.dll)
|Supports reliable, two-way, connection-based byte streams without the duplication of data and without preservation of boundaries. A Socket of this type communicates with a single peer and requires a remote host connection before communication can begin. uses the Transmission Control Protocol (Tcp) ProtocolType and the InterNetwork AddressFamily.|
|Supports datagrams, which are connectionless, unreliable messages of a fixed (typically small) maximum length. Messages might be lost or duplicated and might arrive out of order. A Socket of type requires no connection prior to sending and receiving data, and can communicate with multiple peers. uses the Datagram Protocol (Udp) and the InterNetwork AddressFamily.|
|Supports access to the underlying transport protocol. Using the , you can communicate using protocols like Internet Control Message Protocol (Icmp) and Internet Group Management Protocol (Igmp). Your application must provide a complete IP header when sending. Received datagrams return with the IP header and options intact.|
|Supports connectionless, message-oriented, reliably delivered messages, and preserves message boundaries in data. Rdm (Reliably Delivered Messages) messages arrive unduplicated and in order. Furthermore, the sender is notified if messages are lost. If you initialize a Socket using , you do not require a remote host connection before sending and receiving data. With , you can communicate with multiple peers.|
|Provides connection-oriented and reliable two-way transfer of ordered byte streams across a network. does not duplicate data, and it preserves boundaries within the data stream. A Socket of type communicates with a single peer and requires a remote host connection before communication can begin.|
|Specifies an unknown Socket type.|
Before a Socket can send and receive data, it must first be created using an AddressFamily, a , and a ProtocolType. The enumeration provides several options for defining the type of Socket that you intend to open.
will sometimes implicitly indicate which ProtocolType will be used within an AddressFamily. For example when the is , the ProtocolType is always Udp.When the is , the ProtocolType is always Tcp. If you try to create a Socket with an incompatible combination, Socket will throw a SocketException.
The following example uses the enumerated member as a parameter to the Socket constructor.
'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
Windows 7, Windows Vista SP1 or later, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (Server Core not supported), Windows Server 2008 R2 (Server Core supported with SP1 or later), Windows Server 2003 SP2
The .NET Framework does not support all versions of every platform. For a list of the supported versions, see .NET Framework System Requirements.