<?xml version="1.0" encoding="utf-8"?>
<Type Name="SocketType" FullName="System.Net.Sockets.SocketType" FullNameSP="System_Net_Sockets_SocketType" Maintainer="ecma">
  <TypeSignature Language="ILASM" Value=".class public sealed serializable SocketType extends System.Enum" />
  <TypeSignature Language="C#" Value="public enum SocketType" />
  <TypeSignature Language="ILAsm" Value=".class public auto ansi sealed SocketType extends System.Enum" />
  <MemberOfLibrary>Networking</MemberOfLibrary>
  <AssemblyInfo>
    <AssemblyName>System</AssemblyName>
    <AssemblyPublicKey>[00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ]</AssemblyPublicKey>
    <AssemblyVersion>1.0.x.x</AssemblyVersion>
    <AssemblyVersion>1.0.5000.0</AssemblyVersion>
    <AssemblyVersion>2.0.0.0</AssemblyVersion>
    <AssemblyVersion>4.0.0.0</AssemblyVersion>
  </AssemblyInfo>
  <Base>
    <BaseTypeName>System.Enum</BaseTypeName>
  </Base>
  <Docs>
    <remarks>
      <attribution license="cc4" from="Microsoft" modified="false" />
      <para>Before a <see cref="T:System.Net.Sockets.Socket" /> can send and receive data, it must first be created using an <see cref="T:System.Net.Sockets.AddressFamily" />, a <see cref="T:System.Net.Sockets.SocketType" />, and a <see cref="T:System.Net.Sockets.ProtocolType" />. The <see cref="T:System.Net.Sockets.SocketType" /> enumeration provides several options for defining the type of <see cref="T:System.Net.Sockets.Socket" /> that you intend to open.</para>
      <block subset="none" type="note">
        <para>
          <see cref="T:System.Net.Sockets.SocketType" /> will sometimes implicitly indicate which <see cref="T:System.Net.Sockets.ProtocolType" /> will be used within an <see cref="T:System.Net.Sockets.AddressFamily" />. For example when the <see cref="T:System.Net.Sockets.SocketType" /> is <see cref="F:System.Net.Sockets.SocketType.Dgram" />, the <see cref="T:System.Net.Sockets.ProtocolType" /> is always <see cref="F:System.Net.Sockets.ProtocolType.Udp" />.When the <see cref="T:System.Net.Sockets.SocketType" /> is <see cref="F:System.Net.Sockets.SocketType.Stream" />, the <see cref="T:System.Net.Sockets.ProtocolType" /> is always <see cref="F:System.Net.Sockets.ProtocolType.Tcp" />. If you try to create a <see cref="T:System.Net.Sockets.Socket" /> with an incompatible combination, <see cref="T:System.Net.Sockets.Socket" /> will throw a <see cref="T:System.Net.Sockets.SocketException" />.</para>
      </block>
    </remarks>
    <summary>
      <attribution license="cc4" from="Microsoft" modified="false" />
      <para>Specifies the type of socket that an instance of the <see cref="T:System.Net.Sockets.Socket" /> class represents.</para>
    </summary>
  </Docs>
  <Members>
    <Member MemberName="Dgram">
      <MemberSignature Language="ILASM" Value=".field public static literal valuetype System.Net.Sockets.SocketType Dgram = 2" />
      <MemberSignature Language="C#" Value="Dgram" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.SocketType Dgram = int32(2)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.SocketType</ReturnType>
      </ReturnValue>
      <Parameters />
      <MemberValue>Dgram</MemberValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>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 <see cref="T:System.Net.Sockets.Socket" /> of type <see cref="F:System.Net.Sockets.SocketType.Dgram" /> requires no connection prior to sending and receiving data, and can communicate with multiple peers. <see cref="F:System.Net.Sockets.SocketType.Dgram" /> uses the Datagram Protocol (<see cref="F:System.Net.Sockets.ProtocolType.Udp" />) and the <see cref="F:System.Net.Sockets.AddressFamily.InterNetwork" /> <see cref="T:System.Net.Sockets.AddressFamily" />.</para>
        </summary>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="Raw">
      <MemberSignature Language="ILASM" Value=".field public static literal valuetype System.Net.Sockets.SocketType Raw = 3" />
      <MemberSignature Language="C#" Value="Raw" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.SocketType Raw = int32(3)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.SocketType</ReturnType>
      </ReturnValue>
      <Parameters />
      <MemberValue>Raw</MemberValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Supports access to the underlying transport protocol. Using the <see cref="T:System.Net.Sockets.SocketType" /> <see cref="F:System.Net.Sockets.SocketType.Raw" />, you can communicate using protocols like Internet Control Message Protocol (<see cref="F:System.Net.Sockets.ProtocolType.Icmp" />) and Internet Group Management Protocol (<see cref="F:System.Net.Sockets.ProtocolType.Igmp" />). Your application must provide a complete IP header when sending. Received datagrams return with the IP header and options intact.</para>
        </summary>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="Rdm">
      <MemberSignature Language="ILASM" Value=".field public static literal valuetype System.Net.Sockets.SocketType Rdm = 4" />
      <MemberSignature Language="C#" Value="Rdm" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.SocketType Rdm = int32(4)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.SocketType</ReturnType>
      </ReturnValue>
      <Parameters />
      <MemberValue>Rdm</MemberValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>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 <see cref="F:System.Net.Sockets.SocketType.Rdm" />, you do not require a remote host connection before sending and receiving data. With <see cref="F:System.Net.Sockets.SocketType.Rdm" />, you can communicate with multiple peers.</para>
        </summary>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="Seqpacket">
      <MemberSignature Language="ILASM" Value=".field public static literal valuetype System.Net.Sockets.SocketType Seqpacket = 5" />
      <MemberSignature Language="C#" Value="Seqpacket" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.SocketType Seqpacket = int32(5)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.SocketType</ReturnType>
      </ReturnValue>
      <Parameters />
      <MemberValue>Seqpacket</MemberValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Provides connection-oriented and reliable two-way transfer of ordered byte streams across a network. <see cref="F:System.Net.Sockets.SocketType.Seqpacket" /> does not duplicate data, and it preserves boundaries within the data stream. A Socket of type <see cref="F:System.Net.Sockets.SocketType.Seqpacket" /> communicates with a single peer and requires a remote host connection before communication can begin.</para>
        </summary>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="Stream">
      <MemberSignature Language="ILASM" Value=".field public static literal valuetype System.Net.Sockets.SocketType Stream = 1" />
      <MemberSignature Language="C#" Value="Stream" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.SocketType Stream = int32(1)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.SocketType</ReturnType>
      </ReturnValue>
      <Parameters />
      <MemberValue>Stream</MemberValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>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. <see cref="F:System.Net.Sockets.SocketType.Stream" /> uses the Transmission Control Protocol (<see cref="F:System.Net.Sockets.ProtocolType.Tcp" />) <see cref="T:System.Net.Sockets.ProtocolType" /> and the InterNetwork <see cref="T:System.Net.Sockets.AddressFamily" />.</para>
        </summary>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
    <Member MemberName="Unknown">
      <MemberSignature Language="ILASM" Value=".field public static literal valuetype System.Net.Sockets.SocketType Unknown = -1" />
      <MemberSignature Language="C#" Value="Unknown" />
      <MemberSignature Language="ILAsm" Value=".field public static literal valuetype System.Net.Sockets.SocketType Unknown = int32(-1)" />
      <MemberType>Field</MemberType>
      <AssemblyInfo>
        <AssemblyVersion>1.0.5000.0</AssemblyVersion>
        <AssemblyVersion>2.0.0.0</AssemblyVersion>
        <AssemblyVersion>4.0.0.0</AssemblyVersion>
      </AssemblyInfo>
      <ReturnValue>
        <ReturnType>System.Net.Sockets.SocketType</ReturnType>
      </ReturnValue>
      <Parameters />
      <MemberValue>Unknown</MemberValue>
      <Docs>
        <summary>
          <attribution license="cc4" from="Microsoft" modified="false" />
          <para>Specifies an unknown Socket type.</para>
        </summary>
      </Docs>
      <Excluded>0</Excluded>
    </Member>
  </Members>
  <TypeExcluded>0</TypeExcluded>
</Type>