SocketType 枚举

定义

指定 Socket 类的实例表示的套接字类型。

public enum SocketType
继承
SocketType

字段

Dgram 2

支持数据报,即最大长度固定(通常很小)的无连接、不可靠消息。 消息可能会丢失或重复并可能在到达时不按顺序排列。 Socket 类型的 Dgram 在发送和接收数据之前不需要任何连接,并且可以与多个对方主机进行通信。 Dgram 使用 Datagram 协议 (ProtocolTypeUdp) 和 AddressFamily.InterNetwork address 系列。

Raw 3

支持对基础传输协议的访问。 通过使用 Raw,可以使用 Internet 控制消息协议 (ProtocolType.Icmp) 和 Internet 组管理协议 (ProtocolType.Igmp) 这样的协议来进行通信。 在发送时,您的应用程序必须提供完整的 IP 标头。 所接收的数据报在返回时会保持其 IP 标头和选项不变。

Rdm 4

支持无连接、面向消息、以可靠方式发送的消息,并保留数据中的消息边界。 RDM(以可靠方式发送的消息)消息会依次到达,不会重复。 此外,如果消息丢失,将会通知发送方。 如果使用 Rdm 初始化 Socket,则在发送和接收数据之前无需建立远程主机连接。 利用 Rdm,您可以与多个对方主机进行通信。

Seqpacket 5

在网络上提供排序字节流的面向连接且可靠的双向传输。 Seqpacket 不重复数据,它在数据流中保留边界。 Seqpacket 类型的 Socket 与单个对方主机通信,并且在通信开始之前需要建立远程主机连接。

Stream 1

支持可靠、双向、基于连接的字节流,而不重复数据,也不保留边界。 此类型的 Socket 与单个对方主机通信,并且在通信开始之前需要建立远程主机连接。 Stream 使用传输控制协议 (ProtocolTypeTcp) 和 AddressFamily.InterNetwork address 系列。

Unknown -1

指定未知的 Socket 类型。

示例

以下示例使用 SocketType.Stream 作为构造函数的参数 Socket

//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.");
 }

注解

Socket必须先使用 AddressFamilySocketTypeProtocolType创建数据,然后才能发送和接收数据。 枚举 SocketType 提供了多个用于定义要打开的 的类型 Socket 的选项。

备注

SocketType 有时隐式指示 ProtocolType 在 中使用的 AddressFamily。 例如, 当 为 SocketType.DgramSystem.Net.Sockets.SocketTypeSystem.Net.Sockets.ProtocolType 始终ProtocolType.Udp为 。 System.Net.Sockets.SocketType当 为 SocketType.Stream时,System.Net.Sockets.ProtocolType始终ProtocolType.Tcp为 。 如果尝试使用不兼容的组合创建 SocketSocketSocketException引发 。

适用于

产品 版本
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

另请参阅