[TFM] Update TizenFX TFM to net6.0 (#5360)
[platform/core/csapi/tizenfx.git] / pkg / Tizen.NET.API11 / build / tizen11.0 / ref / System.Net.Sockets.xml
index dab2d8f..00e8293 100755 (executable)
       <summary>This value is equal to the Winsock 2 SIO_ABSORB_RTRALERT constant.</summary>
     </member>
     <member name="F:System.Net.Sockets.IOControlCode.AddMulticastGroupOnInterface">
-      <summary>Join a multicast group using an interface identified by its index. This control code is supported on Windows 2000 and later operating systems. This value is equal to the Winsock 2 SIO_INDEX_ADD_MCAST constant.</summary>
+      <summary>Join a multicast group using an interface identified by its index. This value is equal to the Winsock 2 SIO_INDEX_ADD_MCAST constant.</summary>
     </member>
     <member name="F:System.Net.Sockets.IOControlCode.AddressListChange">
-      <summary>Enable receiving notification when the list of local interfaces for the socket's protocol family changes. This control code is supported on Windows 2000 and later operating systems. This value is equal to the Winsock 2 SIO_ADDRESS_LIST_CHANGE constant.</summary>
+      <summary>Enable receiving notification when the list of local interfaces for the socket's protocol family changes. This value is equal to the Winsock 2 SIO_ADDRESS_LIST_CHANGE constant.</summary>
     </member>
     <member name="F:System.Net.Sockets.IOControlCode.AddressListQuery">
-      <summary>Return the list of local interfaces that the socket can bind to. This control code is supported on Windows 2000 and later operating systems. This value is equal to the Winsock 2 SIO_ADDRESS_LIST_QUERY constant.</summary>
+      <summary>Return the list of local interfaces that the socket can bind to. This value is equal to the Winsock 2 SIO_ADDRESS_LIST_QUERY constant.</summary>
     </member>
     <member name="F:System.Net.Sockets.IOControlCode.AddressListSort">
       <summary>Sort the structure returned by the <see cref="F:System.Net.Sockets.IOControlCode.AddressListQuery" /> field and add scope ID information for IPv6 addresses. This control code is supported on Windows XP and later operating systems. This value is equal to the Winsock 2 SIO_ADDRESS_LIST_SORT constant.</summary>
       <summary>Enable notification for when data is waiting to be received. This value is equal to the Winsock 2 FIOASYNC constant.</summary>
     </member>
     <member name="F:System.Net.Sockets.IOControlCode.BindToInterface">
-      <summary>Bind the socket to a specified interface index. This control code is supported on Windows 2000 and later operating systems. This value is equal to the Winsock 2 SIO_INDEX_BIND constant.</summary>
+      <summary>Bind the socket to a specified interface index. This value is equal to the Winsock 2 SIO_INDEX_BIND constant.</summary>
     </member>
     <member name="F:System.Net.Sockets.IOControlCode.DataToRead">
       <summary>Return the number of bytes available for reading. This value is equal to the Winsock 2 FIONREAD constant.</summary>
     </member>
     <member name="F:System.Net.Sockets.IOControlCode.DeleteMulticastGroupFromInterface">
-      <summary>Remove the socket from a multicast group. This control code is supported on Windows 2000 and later operating systems. This value is equal to the Winsock 2 SIO_INDEX_ADD_MCAST constant.</summary>
+      <summary>Remove the socket from a multicast group. This value is equal to the Winsock 2 SIO_INDEX_ADD_MCAST constant.</summary>
     </member>
     <member name="F:System.Net.Sockets.IOControlCode.EnableCircularQueuing">
       <summary>Replace the oldest queued datagram with an incoming datagram when the incoming message queues are full. This value is equal to the Winsock 2 SIO_ENABLE_CIRCULAR_QUEUEING constant.</summary>
       <summary>Return the Quality of Service (QOS) attributes for the socket group. This value is reserved for future use, and is equal to the Winsock 2 SIO_GET_GROUP_QOS constant.</summary>
     </member>
     <member name="F:System.Net.Sockets.IOControlCode.GetQos">
-      <summary>Retrieve the QOS structure associated with the socket. This control is only supported on platforms that provide a QOS capable transport (Windows Me, Windows 2000, and later.) This value is equal to the Winsock 2 SIO_GET_QOS constant.</summary>
+      <summary>Retrieve the QOS structure associated with the socket. This value is equal to the Winsock 2 SIO_GET_QOS constant.</summary>
     </member>
     <member name="F:System.Net.Sockets.IOControlCode.KeepAliveValues">
-      <summary>Control sending TCP keep-alive packets and the interval at which they are sent. This control code is supported on Windows 2000 and later operating systems. For additional information, see RFC 1122 section 4.2.3.6. This value is equal to the Winsock 2 SIO_KEEPALIVE_VALS constant.</summary>
+      <summary>Control sending TCP keep-alive packets and the interval at which they are sent. For additional information, see RFC 1122 section 4.2.3.6. This value is equal to the Winsock 2 SIO_KEEPALIVE_VALS constant.</summary>
     </member>
     <member name="F:System.Net.Sockets.IOControlCode.LimitBroadcasts">
       <summary>This value is equal to the Winsock 2 SIO_LIMIT_BROADCASTS constant.</summary>
     </member>
     <member name="F:System.Net.Sockets.IOControlCode.MulticastInterface">
-      <summary>Set the interface used for outgoing multicast packets. The interface is identified by its index. This control code is supported on Windows 2000 and later operating systems.  This value is equal to the Winsock 2 SIO_INDEX_MCASTIF constant.</summary>
+      <summary>Set the interface used for outgoing multicast packets. The interface is identified by its index.  This value is equal to the Winsock 2 SIO_INDEX_MCASTIF constant.</summary>
     </member>
     <member name="F:System.Net.Sockets.IOControlCode.MulticastScope">
       <summary>Control the number of times a multicast packet can be forwarded by a router, also known as the Time to Live (TTL), or hop count. This value is equal to the Winsock 2 SIO_MULTICAST_SCOPE constant.</summary>
       <summary>Return information about out-of-band data waiting to be received. When using this control code on stream sockets, the return value indicates the number of bytes available.</summary>
     </member>
     <member name="F:System.Net.Sockets.IOControlCode.QueryTargetPnpHandle">
-      <summary>Retrieve the underlying provider's SOCKET handle. This handle can be used to receive plug-and-play event notification. This control code is supported on Windows 2000 and later operating systems. This value is equal to the Winsock 2 SIO_QUERY_TARGET_PNP_HANDLE constant.</summary>
+      <summary>Retrieve the underlying provider's SOCKET handle. This handle can be used to receive plug-and-play event notification. This value is equal to the Winsock 2 SIO_QUERY_TARGET_PNP_HANDLE constant.</summary>
     </member>
     <member name="F:System.Net.Sockets.IOControlCode.ReceiveAll">
-      <summary>Enable receiving all IPv4 packets on the network. The socket must have address family <see cref="F:System.Net.Sockets.AddressFamily.InterNetwork" />, the socket type must be <see cref="F:System.Net.Sockets.SocketType.Raw" />, and the protocol type must be <see cref="F:System.Net.Sockets.ProtocolType.IP" />. The current user must belong to the Administrators group on the local computer, and the socket must be bound to a specific port. This control code is supported on Windows 2000 and later operating systems. This value is equal to the Winsock 2 SIO_RCVALL constant.</summary>
+      <summary>Enable receiving all IPv4 packets on the network. The socket must have address family <see cref="F:System.Net.Sockets.AddressFamily.InterNetwork" />, the socket type must be <see cref="F:System.Net.Sockets.SocketType.Raw" />, and the protocol type must be <see cref="F:System.Net.Sockets.ProtocolType.IP" />. The current user must belong to the Administrators group on the local computer, and the socket must be bound to a specific port. This value is equal to the Winsock 2 SIO_RCVALL constant.</summary>
     </member>
     <member name="F:System.Net.Sockets.IOControlCode.ReceiveAllIgmpMulticast">
-      <summary>Enable receiving all Internet Group Management Protocol (IGMP) packets on the network. The socket must have address family <see cref="F:System.Net.Sockets.AddressFamily.InterNetwork" />, the socket type must be <see cref="F:System.Net.Sockets.SocketType.Raw" />, and the protocol type must be <see cref="F:System.Net.Sockets.ProtocolType.Igmp" />. The current user must belong to the Administrators group on the local computer, and the socket must be bound to a specific port. This control code is supported on Windows 2000 and later operating systems. This value is equal to the Winsock 2 SIO_RCVALL_IGMPMCAST constant.</summary>
+      <summary>Enable receiving all Internet Group Management Protocol (IGMP) packets on the network. The socket must have address family <see cref="F:System.Net.Sockets.AddressFamily.InterNetwork" />, the socket type must be <see cref="F:System.Net.Sockets.SocketType.Raw" />, and the protocol type must be <see cref="F:System.Net.Sockets.ProtocolType.Igmp" />. The current user must belong to the Administrators group on the local computer, and the socket must be bound to a specific port. This value is equal to the Winsock 2 SIO_RCVALL_IGMPMCAST constant.</summary>
     </member>
     <member name="F:System.Net.Sockets.IOControlCode.ReceiveAllMulticast">
-      <summary>Enable receiving all multicast IPv4 packets on the network. These are packets with destination addresses in the range 224.0.0.0 through 239.255.255.255. The socket must have address family <see cref="F:System.Net.Sockets.AddressFamily.InterNetwork" />, the socket type must be <see cref="F:System.Net.Sockets.SocketType.Raw" />, and the protocol type must be <see cref="F:System.Net.Sockets.ProtocolType.Udp" />. The current user must belong to the Administrators group on the local computer, and the socket must be bound to a specific port. This control code is supported on Windows 2000 and later operating systems. This value is equal to the Winsock 2 SIO_RCVALL_MCAST constant.</summary>
+      <summary>Enable receiving all multicast IPv4 packets on the network. These are packets with destination addresses in the range 224.0.0.0 through 239.255.255.255. The socket must have address family <see cref="F:System.Net.Sockets.AddressFamily.InterNetwork" />, the socket type must be <see cref="F:System.Net.Sockets.SocketType.Raw" />, and the protocol type must be <see cref="F:System.Net.Sockets.ProtocolType.Udp" />. The current user must belong to the Administrators group on the local computer, and the socket must be bound to a specific port. This value is equal to the Winsock 2 SIO_RCVALL_MCAST constant.</summary>
     </member>
     <member name="F:System.Net.Sockets.IOControlCode.RoutingInterfaceChange">
       <summary>Enable receiving notification when the local interface used to access a remote endpoint changes. This value is equal to the Winsock 2 SIO_ROUTING_INTERFACE_CHANGE constant.</summary>
       <summary>Set the Quality of Service (QOS) attributes for the socket group. This value is reserved for future use and is equal to the Winsock 2 SIO_SET_GROUP_QOS constant.</summary>
     </member>
     <member name="F:System.Net.Sockets.IOControlCode.SetQos">
-      <summary>Set the Quality of Service (QOS) attributes for the socket. QOS defines the bandwidth requirements for the socket. This control code is supported on Windows Me, Windows 2000, and later operating systems. This value is equal to the Winsock 2 SIO_SET_QOS constant.</summary>
+      <summary>Set the Quality of Service (QOS) attributes for the socket. QOS defines the bandwidth requirements for the socket. This value is equal to the Winsock 2 SIO_SET_QOS constant.</summary>
     </member>
     <member name="F:System.Net.Sockets.IOControlCode.TranslateHandle">
       <summary>Return a handle for the socket that is valid in the context of a companion interface. This value is equal to the Winsock 2 SIO_TRANSLATE_HANDLE constant.</summary>
     <member name="T:System.Net.Sockets.IPPacketInformation">
       <summary>Presents the packet information from a call to <see cref="M:System.Net.Sockets.Socket.ReceiveMessageFrom(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags@,System.Net.EndPoint@,System.Net.Sockets.IPPacketInformation@)" /> or <see cref="M:System.Net.Sockets.Socket.EndReceiveMessageFrom(System.IAsyncResult,System.Net.Sockets.SocketFlags@,System.Net.EndPoint@,System.Net.Sockets.IPPacketInformation@)" />.</summary>
     </member>
-    <member name="P:System.Net.Sockets.IPPacketInformation.Address">
-      <summary>Gets the origin information of the packet that was received as a result of calling the <see cref="M:System.Net.Sockets.Socket.ReceiveMessageFrom(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags@,System.Net.EndPoint@,System.Net.Sockets.IPPacketInformation@)" /> method or <see cref="M:System.Net.Sockets.Socket.EndReceiveMessageFrom(System.IAsyncResult,System.Net.Sockets.SocketFlags@,System.Net.EndPoint@,System.Net.Sockets.IPPacketInformation@)" /> method.</summary>
-      <returns>An <see cref="T:System.Net.IPAddress" /> that indicates the origin information of the packet that was received as a result of calling the <see cref="M:System.Net.Sockets.Socket.ReceiveMessageFrom(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags@,System.Net.EndPoint@,System.Net.Sockets.IPPacketInformation@)" /> method or <see cref="M:System.Net.Sockets.Socket.EndReceiveMessageFrom(System.IAsyncResult,System.Net.Sockets.SocketFlags@,System.Net.EndPoint@,System.Net.Sockets.IPPacketInformation@)" /> method. For packets that were sent from a unicast address, the <see cref="P:System.Net.Sockets.IPPacketInformation.Address" /> property will return the <see cref="T:System.Net.IPAddress" /> of the sender; for multicast or broadcast packets, the <see cref="P:System.Net.Sockets.IPPacketInformation.Address" /> property will return the multicast or broadcast <see cref="T:System.Net.IPAddress" />.</returns>
-    </member>
     <member name="M:System.Net.Sockets.IPPacketInformation.Equals(System.Object)">
       <summary>Returns a value that indicates whether this instance is equal to a specified object.</summary>
       <param name="comparand">The object to compare with this instance.</param>
       <summary>Returns the hash code for this instance.</summary>
       <returns>An Int32 hash code.</returns>
     </member>
-    <member name="P:System.Net.Sockets.IPPacketInformation.Interface">
-      <summary>Gets the network interface information that is associated with a call to <see cref="M:System.Net.Sockets.Socket.ReceiveMessageFrom(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags@,System.Net.EndPoint@,System.Net.Sockets.IPPacketInformation@)" /> or <see cref="M:System.Net.Sockets.Socket.EndReceiveMessageFrom(System.IAsyncResult,System.Net.Sockets.SocketFlags@,System.Net.EndPoint@,System.Net.Sockets.IPPacketInformation@)" />.</summary>
-      <returns>An <see cref="T:System.Int32" /> value, which represents the index of the network interface. You can use this index with <see cref="M:System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces" /> to get more information about the relevant interface.</returns>
-    </member>
     <member name="M:System.Net.Sockets.IPPacketInformation.op_Equality(System.Net.Sockets.IPPacketInformation,System.Net.Sockets.IPPacketInformation)">
       <summary>Tests whether two specified <see cref="T:System.Net.Sockets.IPPacketInformation" /> instances are equivalent.</summary>
       <param name="packetInformation1">The <see cref="T:System.Net.Sockets.IPPacketInformation" /> instance that is to the left of the equality operator.</param>
       <returns>
         <see langword="true" /> if <paramref name="packetInformation1" /> and <paramref name="packetInformation2" /> are unequal; otherwise, <see langword="false" />.</returns>
     </member>
+    <member name="P:System.Net.Sockets.IPPacketInformation.Address">
+      <summary>Gets the origin information of the packet that was received as a result of calling the <see cref="M:System.Net.Sockets.Socket.ReceiveMessageFrom(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags@,System.Net.EndPoint@,System.Net.Sockets.IPPacketInformation@)" /> method or <see cref="M:System.Net.Sockets.Socket.EndReceiveMessageFrom(System.IAsyncResult,System.Net.Sockets.SocketFlags@,System.Net.EndPoint@,System.Net.Sockets.IPPacketInformation@)" /> method.</summary>
+      <returns>An <see cref="T:System.Net.IPAddress" /> that indicates the origin information of the packet that was received as a result of calling the <see cref="M:System.Net.Sockets.Socket.ReceiveMessageFrom(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags@,System.Net.EndPoint@,System.Net.Sockets.IPPacketInformation@)" /> method or <see cref="M:System.Net.Sockets.Socket.EndReceiveMessageFrom(System.IAsyncResult,System.Net.Sockets.SocketFlags@,System.Net.EndPoint@,System.Net.Sockets.IPPacketInformation@)" /> method. For packets that were sent from a unicast address, the <see cref="P:System.Net.Sockets.IPPacketInformation.Address" /> property will return the <see cref="T:System.Net.IPAddress" /> of the sender; for multicast or broadcast packets, the <see cref="P:System.Net.Sockets.IPPacketInformation.Address" /> property will return the multicast or broadcast <see cref="T:System.Net.IPAddress" />.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.IPPacketInformation.Interface">
+      <summary>Gets the network interface information that is associated with a call to <see cref="M:System.Net.Sockets.Socket.ReceiveMessageFrom(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags@,System.Net.EndPoint@,System.Net.Sockets.IPPacketInformation@)" /> or <see cref="M:System.Net.Sockets.Socket.EndReceiveMessageFrom(System.IAsyncResult,System.Net.Sockets.SocketFlags@,System.Net.EndPoint@,System.Net.Sockets.IPPacketInformation@)" />.</summary>
+      <returns>An <see cref="T:System.Int32" /> value, which represents the index of the network interface. You can use this index with <see cref="M:System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces" /> to get more information about the relevant interface.</returns>
+    </member>
     <member name="T:System.Net.Sockets.IPProtectionLevel">
       <summary>A value that enables restriction of an IPv6 socket to a specified scope, such as addresses with the same link local or site local prefix.</summary>
     </member>
       <param name="group">The group <see cref="T:System.Net.IPAddress" />.</param>
       <param name="ifindex">The local interface address.</param>
       <exception cref="T:System.ArgumentOutOfRangeException">
-        <paramref name="ifindex" /> is less than 0.
--or-
-<paramref name="ifindex" /> is greater than 0x00000000FFFFFFFF.</exception>
+        <paramref name="ifindex" /> is less than 0.  
+  
+ -or-  
+  
+ <paramref name="ifindex" /> is greater than 0x00000000FFFFFFFF.</exception>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="group" /> is <see langword="null" />.</exception>
     </member>
     <member name="P:System.Net.Sockets.IPv6MulticastOption.Group">
       <summary>Gets or sets the IP address of a multicast group.</summary>
-      <returns>An <see cref="T:System.Net.IPAddress" /> that contains the Internet address of a multicast group.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="group" /> is <see langword="null" />.</exception>
+      <returns>An <see cref="T:System.Net.IPAddress" /> that contains the Internet address of a multicast group.</returns>
     </member>
     <member name="P:System.Net.Sockets.IPv6MulticastOption.InterfaceIndex">
       <summary>Gets or sets the interface index that is associated with a multicast group.</summary>
-      <returns>A <see cref="T:System.UInt64" /> value that specifies the address of the interface.</returns>
       <exception cref="T:System.ArgumentOutOfRangeException">The value that is specified for a set operation is less than 0 or greater than 0x00000000FFFFFFFF.</exception>
+      <returns>A <see cref="T:System.UInt64" /> value that specifies the address of the interface.</returns>
     </member>
     <member name="T:System.Net.Sockets.LingerOption">
       <summary>Specifies whether a <see cref="T:System.Net.Sockets.Socket" /> will remain connected after a call to the <see cref="M:System.Net.Sockets.Socket.Close" /> or <see cref="M:System.Net.Sockets.TcpClient.Close" /> methods and the length of time it will remain connected, if data remains to be sent.</summary>
     </member>
     <member name="M:System.Net.Sockets.MulticastOption.#ctor(System.Net.IPAddress)">
       <summary>Initializes a new version of the <see cref="T:System.Net.Sockets.MulticastOption" /> class for the specified IP multicast group.</summary>
-      <param name="group">The <see cref="T:System.Net.IPAddress" /> of the multicast group.</param>
+      <param name="group">The IP address of the multicast group.</param>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="group" /> is <see langword="null" />.</exception>
     </member>
     <member name="M:System.Net.Sockets.MulticastOption.#ctor(System.Net.IPAddress,System.Int32)">
       <summary>Initializes a new instance of the <see cref="T:System.Net.Sockets.MulticastOption" /> class with the specified IP multicast group address and interface index.</summary>
-      <param name="group">The <see cref="T:System.Net.IPAddress" /> of the multicast group.</param>
-      <param name="interfaceIndex">The index of the interface that is used to send and receive multicast packets.</param>
+      <param name="group">The IP address of the multicast group.</param>
+      <param name="interfaceIndex">The index of the interface that's used to send and receive multicast packets.</param>
     </member>
     <member name="M:System.Net.Sockets.MulticastOption.#ctor(System.Net.IPAddress,System.Net.IPAddress)">
       <summary>Initializes a new instance of the <see cref="T:System.Net.Sockets.MulticastOption" /> class with the specified IP multicast group address and local IP address associated with a network interface.</summary>
-      <param name="group">The group <see cref="T:System.Net.IPAddress" />.</param>
-      <param name="mcint">The local <see cref="T:System.Net.IPAddress" />.</param>
+      <param name="group">The group IP address.</param>
+      <param name="mcint">The local IP address.</param>
       <exception cref="T:System.ArgumentNullException">
-        <paramref name="group" /> is <see langword="null" />.
--or-
-<paramref name="mcint" /> is <see langword="null" />.</exception>
+        <paramref name="group" /> is <see langword="null" />.  
+  
+ -or-  
+  
+ <paramref name="mcint" /> is <see langword="null" />.</exception>
     </member>
     <member name="P:System.Net.Sockets.MulticastOption.Group">
       <summary>Gets or sets the IP address of a multicast group.</summary>
-      <returns>An <see cref="T:System.Net.IPAddress" /> that contains the Internet address of a multicast group.</returns>
+      <exception cref="T:System.ArgumentNullException">
+          .NET 5.0 and later versions: <paramref name="group" /> is <see langword="null" />.</exception>
+      <returns>The IP address of a multicast group.</returns>
     </member>
     <member name="P:System.Net.Sockets.MulticastOption.InterfaceIndex">
-      <summary>Gets or sets the index of the interface that is used to send and receive multicast packets.</summary>
-      <returns>An integer that represents the index of a <see cref="T:System.Net.NetworkInformation.NetworkInterface" /> array element.</returns>
+      <summary>Gets or sets the index of the interface that's used to send and receive multicast packets.</summary>
+      <returns>The index of a <see cref="T:System.Net.NetworkInformation.NetworkInterface" /> array element.</returns>
     </member>
     <member name="P:System.Net.Sockets.MulticastOption.LocalAddress">
       <summary>Gets or sets the local address associated with a multicast group.</summary>
-      <returns>An <see cref="T:System.Net.IPAddress" /> that contains the local address associated with a multicast group.</returns>
+      <returns>The local address associated with a multicast group.</returns>
     </member>
     <member name="T:System.Net.Sockets.NetworkStream">
       <summary>Provides the underlying stream of data for network access.</summary>
       <summary>Creates a new instance of the <see cref="T:System.Net.Sockets.NetworkStream" /> class for the specified <see cref="T:System.Net.Sockets.Socket" />.</summary>
       <param name="socket">The <see cref="T:System.Net.Sockets.Socket" /> that the <see cref="T:System.Net.Sockets.NetworkStream" /> will use to send and receive data.</param>
       <exception cref="T:System.ArgumentNullException">The <paramref name="socket" /> parameter is <see langword="null" />.</exception>
-      <exception cref="T:System.IO.IOException">The <paramref name="socket" /> parameter is not connected.
--or-
-The <see cref="P:System.Net.Sockets.Socket.SocketType" /> property of the <paramref name="socket" /> parameter is not <see cref="F:System.Net.Sockets.SocketType.Stream" />.
--or-
-The <paramref name="socket" /> parameter is in a nonblocking state.</exception>
+      <exception cref="T:System.IO.IOException">The <paramref name="socket" /> parameter is not connected.  
+  
+ -or-  
+  
+ The <see cref="P:System.Net.Sockets.Socket.SocketType" /> property of the <paramref name="socket" /> parameter is not <see cref="F:System.Net.Sockets.SocketType.Stream" />.  
+  
+ -or-  
+  
+ The <paramref name="socket" /> parameter is in a nonblocking state.</exception>
     </member>
     <member name="M:System.Net.Sockets.NetworkStream.#ctor(System.Net.Sockets.Socket,System.Boolean)">
       <summary>Initializes a new instance of the <see cref="T:System.Net.Sockets.NetworkStream" /> class for the specified <see cref="T:System.Net.Sockets.Socket" /> with the specified <see cref="T:System.Net.Sockets.Socket" /> ownership.</summary>
       <param name="socket">The <see cref="T:System.Net.Sockets.Socket" /> that the <see cref="T:System.Net.Sockets.NetworkStream" /> will use to send and receive data.</param>
       <param name="ownsSocket">Set to <see langword="true" /> to indicate that the <see cref="T:System.Net.Sockets.NetworkStream" /> will take ownership of the <see cref="T:System.Net.Sockets.Socket" />; otherwise, <see langword="false" />.</param>
       <exception cref="T:System.ArgumentNullException">The <paramref name="socket" /> parameter is <see langword="null" />.</exception>
-      <exception cref="T:System.IO.IOException">The <paramref name="socket" /> parameter is not connected.
--or-
-the value of the <see cref="P:System.Net.Sockets.Socket.SocketType" /> property of the <paramref name="socket" /> parameter is not <see cref="F:System.Net.Sockets.SocketType.Stream" />.
--or-
-the <paramref name="socket" /> parameter is in a nonblocking state.</exception>
+      <exception cref="T:System.IO.IOException">The <paramref name="socket" /> parameter is not connected.  
+  
+ -or-  
+  
+ the value of the <see cref="P:System.Net.Sockets.Socket.SocketType" /> property of the <paramref name="socket" /> parameter is not <see cref="F:System.Net.Sockets.SocketType.Stream" />.  
+  
+ -or-  
+  
+ the <paramref name="socket" /> parameter is in a nonblocking state.</exception>
     </member>
     <member name="M:System.Net.Sockets.NetworkStream.#ctor(System.Net.Sockets.Socket,System.IO.FileAccess)">
       <summary>Creates a new instance of the <see cref="T:System.Net.Sockets.NetworkStream" /> class for the specified <see cref="T:System.Net.Sockets.Socket" /> with the specified access rights.</summary>
       <param name="socket">The <see cref="T:System.Net.Sockets.Socket" /> that the <see cref="T:System.Net.Sockets.NetworkStream" /> will use to send and receive data.</param>
       <param name="access">A bitwise combination of the <see cref="T:System.IO.FileAccess" /> values that specify the type of access given to the <see cref="T:System.Net.Sockets.NetworkStream" /> over the provided <see cref="T:System.Net.Sockets.Socket" />.</param>
       <exception cref="T:System.ArgumentNullException">The <paramref name="socket" /> parameter is <see langword="null" />.</exception>
-      <exception cref="T:System.IO.IOException">The <paramref name="socket" /> parameter is not connected.
--or-
-the <see cref="P:System.Net.Sockets.Socket.SocketType" /> property of the <paramref name="socket" /> parameter is not <see cref="F:System.Net.Sockets.SocketType.Stream" />.
--or-
-the <paramref name="socket" /> parameter is in a nonblocking state.</exception>
+      <exception cref="T:System.IO.IOException">The <paramref name="socket" /> parameter is not connected.  
+  
+ -or-  
+  
+ the <see cref="P:System.Net.Sockets.Socket.SocketType" /> property of the <paramref name="socket" /> parameter is not <see cref="F:System.Net.Sockets.SocketType.Stream" />.  
+  
+ -or-  
+  
+ the <paramref name="socket" /> parameter is in a nonblocking state.</exception>
     </member>
     <member name="M:System.Net.Sockets.NetworkStream.#ctor(System.Net.Sockets.Socket,System.IO.FileAccess,System.Boolean)">
       <summary>Creates a new instance of the <see cref="T:System.Net.Sockets.NetworkStream" /> class for the specified <see cref="T:System.Net.Sockets.Socket" /> with the specified access rights and the specified <see cref="T:System.Net.Sockets.Socket" /> ownership.</summary>
@@ -284,91 +302,87 @@ the <paramref name="socket" /> parameter is in a nonblocking state.</exception>
       <param name="access">A bitwise combination of the <see cref="T:System.IO.FileAccess" /> values that specifies the type of access given to the <see cref="T:System.Net.Sockets.NetworkStream" /> over the provided <see cref="T:System.Net.Sockets.Socket" />.</param>
       <param name="ownsSocket">Set to <see langword="true" /> to indicate that the <see cref="T:System.Net.Sockets.NetworkStream" /> will take ownership of the <see cref="T:System.Net.Sockets.Socket" />; otherwise, <see langword="false" />.</param>
       <exception cref="T:System.ArgumentNullException">The <paramref name="socket" /> parameter is <see langword="null" />.</exception>
-      <exception cref="T:System.IO.IOException">The <paramref name="socket" /> parameter is not connected.
--or-
-The <see cref="P:System.Net.Sockets.Socket.SocketType" /> property of the <paramref name="socket" /> parameter is not <see cref="F:System.Net.Sockets.SocketType.Stream" />.
--or-
-The <paramref name="socket" /> parameter is in a nonblocking state.</exception>
+      <exception cref="T:System.IO.IOException">The <paramref name="socket" /> parameter is not connected.  
+  
+ -or-  
+  
+ The <see cref="P:System.Net.Sockets.Socket.SocketType" /> property of the <paramref name="socket" /> parameter is not <see cref="F:System.Net.Sockets.SocketType.Stream" />.  
+  
+ -or-  
+  
+ The <paramref name="socket" /> parameter is in a nonblocking state.</exception>
     </member>
     <member name="M:System.Net.Sockets.NetworkStream.BeginRead(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object)">
       <summary>Begins an asynchronous read from the <see cref="T:System.Net.Sockets.NetworkStream" />.</summary>
       <param name="buffer">An array of type <see cref="T:System.Byte" /> that is the location in memory to store data read from the <see cref="T:System.Net.Sockets.NetworkStream" />.</param>
       <param name="offset">The location in <paramref name="buffer" /> to begin storing the data.</param>
-      <param name="size">The number of bytes to read from the <see cref="T:System.Net.Sockets.NetworkStream" />.</param>
+      <param name="count">The number of bytes to read from the <see cref="T:System.Net.Sockets.NetworkStream" />.</param>
       <param name="callback">The <see cref="T:System.AsyncCallback" /> delegate that is executed when <see cref="M:System.Net.Sockets.NetworkStream.BeginRead(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object)" /> completes.</param>
       <param name="state">An object that contains any additional user-defined data.</param>
-      <returns>An <see cref="T:System.IAsyncResult" /> that represents the asynchronous call.</returns>
       <exception cref="T:System.ArgumentNullException">The <paramref name="buffer" /> parameter is <see langword="null" />.</exception>
-      <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="offset" /> parameter is less than 0.
--or-
-The <paramref name="offset" /> parameter is greater than the length of the <paramref name="buffer" /> paramater.
--or-
-The <paramref name="size" /> is less than 0.
--or-
-The <paramref name="size" /> is greater than the length of <paramref name="buffer" /> minus the value of the <paramref name="offset" /> parameter.</exception>
-      <exception cref="T:System.IO.IOException">The underlying <see cref="T:System.Net.Sockets.Socket" /> is closed.
--or-
-There was a failure while reading from the network.
--or-
-An error occurred when accessing the socket.</exception>
+      <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="offset" /> parameter is less than 0.  
+  
+ -or-  
+  
+ The <paramref name="offset" /> parameter is greater than the length of the <paramref name="buffer" /> paramater.  
+  
+ -or-  
+  
+ The <paramref name="size" /> is less than 0.  
+  
+ -or-  
+  
+ The <paramref name="size" /> is greater than the length of <paramref name="buffer" /> minus the value of the <paramref name="offset" /> parameter.</exception>
+      <exception cref="T:System.IO.IOException">The underlying <see cref="T:System.Net.Sockets.Socket" /> is closed.  
+  
+ -or-  
+  
+ There was a failure while reading from the network.  
+  
+ -or-  
+  
+ An error occurred when accessing the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.NetworkStream" /> is closed.</exception>
+      <returns>An <see cref="T:System.IAsyncResult" /> that represents the asynchronous call.</returns>
     </member>
     <member name="M:System.Net.Sockets.NetworkStream.BeginWrite(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object)">
       <summary>Begins an asynchronous write to a stream.</summary>
       <param name="buffer">An array of type <see cref="T:System.Byte" /> that contains the data to write to the <see cref="T:System.Net.Sockets.NetworkStream" />.</param>
       <param name="offset">The location in <paramref name="buffer" /> to begin sending the data.</param>
-      <param name="size">The number of bytes to write to the <see cref="T:System.Net.Sockets.NetworkStream" />.</param>
+      <param name="count">The number of bytes to write to the <see cref="T:System.Net.Sockets.NetworkStream" />.</param>
       <param name="callback">The <see cref="T:System.AsyncCallback" /> delegate that is executed when <see cref="M:System.Net.Sockets.NetworkStream.BeginWrite(System.Byte[],System.Int32,System.Int32,System.AsyncCallback,System.Object)" /> completes.</param>
       <param name="state">An object that contains any additional user-defined data.</param>
-      <returns>An <see cref="T:System.IAsyncResult" /> that represents the asynchronous call.</returns>
       <exception cref="T:System.ArgumentNullException">The <paramref name="buffer" /> parameter is <see langword="null" />.</exception>
-      <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="offset" /> parameter is less than 0.
--or-
-The <paramref name="offset" /> parameter is greater than the length of <paramref name="buffer" />.
--or-
-The <paramref name="size" /> parameter is less than 0.
--or-
-The <paramref name="size" /> parameter is greater than the length of <paramref name="buffer" /> minus the value of the <paramref name="offset" /> parameter.</exception>
-      <exception cref="T:System.IO.IOException">The underlying <see cref="T:System.Net.Sockets.Socket" /> is closed.
--or-
-There was a failure while writing to the network.
--or-
-An error occurred when accessing the socket.</exception>
+      <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="offset" /> parameter is less than 0.  
+  
+ -or-  
+  
+ The <paramref name="offset" /> parameter is greater than the length of <paramref name="buffer" />.  
+  
+ -or-  
+  
+ The <paramref name="size" /> parameter is less than 0.  
+  
+ -or-  
+  
+ The <paramref name="size" /> parameter is greater than the length of <paramref name="buffer" /> minus the value of the <paramref name="offset" /> parameter.</exception>
+      <exception cref="T:System.IO.IOException">The underlying <see cref="T:System.Net.Sockets.Socket" /> is closed.  
+  
+ -or-  
+  
+ There was a failure while writing to the network.  
+  
+ -or-  
+  
+ An error occurred when accessing the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.NetworkStream" /> is closed.</exception>
-    </member>
-    <member name="P:System.Net.Sockets.NetworkStream.CanRead">
-      <summary>Gets a value that indicates whether the <see cref="T:System.Net.Sockets.NetworkStream" /> supports reading.</summary>
-      <returns>
-        <see langword="true" /> if data can be read from the stream; otherwise, <see langword="false" />. The default value is <see langword="true" />.</returns>
-    </member>
-    <member name="P:System.Net.Sockets.NetworkStream.CanSeek">
-      <summary>Gets a value that indicates whether the stream supports seeking. This property is not currently supported.This property always returns <see langword="false" />.</summary>
-      <returns>
-        <see langword="false" /> in all cases to indicate that <see cref="T:System.Net.Sockets.NetworkStream" /> cannot seek a specific location in the stream.</returns>
-    </member>
-    <member name="P:System.Net.Sockets.NetworkStream.CanTimeout">
-      <summary>Indicates whether timeout properties are usable for <see cref="T:System.Net.Sockets.NetworkStream" />.</summary>
-      <returns>
-        <see langword="true" /> in all cases.</returns>
-    </member>
-    <member name="P:System.Net.Sockets.NetworkStream.CanWrite">
-      <summary>Gets a value that indicates whether the <see cref="T:System.Net.Sockets.NetworkStream" /> supports writing.</summary>
-      <returns>
-        <see langword="true" /> if data can be written to the <see cref="T:System.Net.Sockets.NetworkStream" />; otherwise, <see langword="false" />. The default value is <see langword="true" />.</returns>
+      <returns>An <see cref="T:System.IAsyncResult" /> that represents the asynchronous call.</returns>
     </member>
     <member name="M:System.Net.Sockets.NetworkStream.Close(System.Int32)">
       <summary>Closes the <see cref="T:System.Net.Sockets.NetworkStream" /> after waiting the specified time to allow data to be sent.</summary>
       <param name="timeout">A 32-bit signed integer that specifies the number of milliseconds to wait to send any remaining data before closing.</param>
       <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="timeout" /> parameter is less than -1.</exception>
     </member>
-    <member name="P:System.Net.Sockets.NetworkStream.DataAvailable">
-      <summary>Gets a value that indicates whether data is available on the <see cref="T:System.Net.Sockets.NetworkStream" /> to be read.</summary>
-      <returns>
-        <see langword="true" /> if data is available on the stream to be read; otherwise, <see langword="false" />.</returns>
-      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.NetworkStream" /> is closed.</exception>
-      <exception cref="T:System.IO.IOException">The underlying <see cref="T:System.Net.Sockets.Socket" /> is closed.</exception>
-      <exception cref="T:System.Net.Sockets.SocketException">Use the <see cref="P:System.Net.Sockets.SocketException.ErrorCode" /> property to obtain the specific error code and refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.</exception>
-    </member>
     <member name="M:System.Net.Sockets.NetworkStream.Dispose(System.Boolean)">
       <summary>Releases the unmanaged resources used by the <see cref="T:System.Net.Sockets.NetworkStream" /> and optionally releases the managed resources.</summary>
       <param name="disposing">
@@ -377,22 +391,28 @@ An error occurred when accessing the socket.</exception>
     <member name="M:System.Net.Sockets.NetworkStream.EndRead(System.IAsyncResult)">
       <summary>Handles the end of an asynchronous read.</summary>
       <param name="asyncResult">An <see cref="T:System.IAsyncResult" /> that represents an asynchronous call.</param>
-      <returns>The number of bytes read from the <see cref="T:System.Net.Sockets.NetworkStream" />.</returns>
       <exception cref="T:System.ArgumentException">The <paramref name="asyncResult" /> parameter is <see langword="null" />.</exception>
-      <exception cref="T:System.IO.IOException">The underlying <see cref="T:System.Net.Sockets.Socket" /> is closed.
--or-
-An error occurred when accessing the socket.</exception>
+      <exception cref="T:System.IO.IOException">The underlying <see cref="T:System.Net.Sockets.Socket" /> is closed.  
+  
+ -or-  
+  
+ An error occurred when accessing the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.NetworkStream" /> is closed.</exception>
+      <returns>The number of bytes read from the <see cref="T:System.Net.Sockets.NetworkStream" />.</returns>
     </member>
     <member name="M:System.Net.Sockets.NetworkStream.EndWrite(System.IAsyncResult)">
       <summary>Handles the end of an asynchronous write.</summary>
       <param name="asyncResult">The <see cref="T:System.IAsyncResult" /> that represents the asynchronous call.</param>
       <exception cref="T:System.ArgumentNullException">The <paramref name="asyncResult" /> parameter is <see langword="null" />.</exception>
-      <exception cref="T:System.IO.IOException">The underlying <see cref="T:System.Net.Sockets.Socket" /> is closed.
--or-
-An error occurred while writing to the network.
--or-
-An error occurred when accessing the socket.</exception>
+      <exception cref="T:System.IO.IOException">The underlying <see cref="T:System.Net.Sockets.Socket" /> is closed.  
+  
+ -or-  
+  
+ An error occurred while writing to the network.  
+  
+ -or-  
+  
+ An error occurred when accessing the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.NetworkStream" /> is closed.</exception>
     </member>
     <member name="M:System.Net.Sockets.NetworkStream.Finalize">
@@ -406,123 +426,123 @@ An error occurred when accessing the socket.</exception>
       <param name="cancellationToken">A cancellation token used to propagate notification that this  operation should be canceled.</param>
       <returns>The task object representing the asynchronous operation.</returns>
     </member>
-    <member name="P:System.Net.Sockets.NetworkStream.Length">
-      <summary>Gets the length of the data available on the stream. This property is not currently supported and always throws a <see cref="T:System.NotSupportedException" />.</summary>
-      <returns>The length of the data available on the stream.</returns>
-      <exception cref="T:System.NotSupportedException">Any use of this property.</exception>
-    </member>
-    <member name="P:System.Net.Sockets.NetworkStream.Position">
-      <summary>Gets or sets the current position in the stream. This property is not currently supported and always throws a <see cref="T:System.NotSupportedException" />.</summary>
-      <returns>The current position in the stream.</returns>
-      <exception cref="T:System.NotSupportedException">Any use of this property.</exception>
-    </member>
     <member name="M:System.Net.Sockets.NetworkStream.Read(System.Byte[],System.Int32,System.Int32)">
       <summary>Reads data from the <see cref="T:System.Net.Sockets.NetworkStream" /> and stores it to a byte array.</summary>
       <param name="buffer">An array of type <see cref="T:System.Byte" /> that is the location in memory to store data read from the <see cref="T:System.Net.Sockets.NetworkStream" />.</param>
       <param name="offset">The location in <paramref name="buffer" /> to begin storing the data to.</param>
-      <param name="size">The number of bytes to read from the <see cref="T:System.Net.Sockets.NetworkStream" />.</param>
-      <returns>The number of bytes read from the <see cref="T:System.Net.Sockets.NetworkStream" />.</returns>
+      <param name="count">The number of bytes to read from the <see cref="T:System.Net.Sockets.NetworkStream" />.</param>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="buffer" /> is <see langword="null" />.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
-        <paramref name="offset" /> is less than 0.
--or-
-<paramref name="offset" /> is greater than the length of <paramref name="buffer" />.
--or-
-<paramref name="size" /> is less than 0.
--or-
-<paramref name="size" /> is greater than the length of <paramref name="buffer" /> minus <paramref name="offset" />.</exception>
+        <paramref name="offset" /> is less than 0.  
+  
+ -or-  
+  
+ <paramref name="offset" /> is greater than the length of <paramref name="buffer" />.  
+  
+ -or-  
+  
+ <paramref name="size" /> is less than 0.  
+  
+ -or-  
+  
+ <paramref name="size" /> is greater than the length of <paramref name="buffer" /> minus <paramref name="offset" />.</exception>
       <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Net.Sockets.NetworkStream" /> does not support reading.</exception>
-      <exception cref="">An error occurred when accessing the socket.
+      <exception cref="T:System.IO.IOException">An error occurred when accessing the socket.
+
 -or-
+
 There is a failure reading from the network.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.NetworkStream" /> is closed.</exception>
+      <returns>The number of bytes read from the <see cref="T:System.Net.Sockets.NetworkStream" />.</returns>
     </member>
     <member name="M:System.Net.Sockets.NetworkStream.Read(System.Span{System.Byte})">
       <summary>Reads data from the <see cref="T:System.Net.Sockets.NetworkStream" /> and stores it to a span of bytes in memory.</summary>
       <param name="buffer">A region of memory to store data read from the <see cref="T:System.Net.Sockets.NetworkStream" />.</param>
-      <returns>The number of bytes read from the <see cref="T:System.Net.Sockets.NetworkStream" />.</returns>
       <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Net.Sockets.NetworkStream" /> does not support reading.</exception>
-      <exception cref="">An error occurred when accessing the socket.
+      <exception cref="T:System.IO.IOException">An error occurred when accessing the socket.
+
 -or-
+
 There is a failure reading from the network.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.NetworkStream" /> is closed.</exception>
-    </member>
-    <member name="P:System.Net.Sockets.NetworkStream.Readable">
-      <summary>Gets or sets a value that indicates whether the <see cref="T:System.Net.Sockets.NetworkStream" /> can be read.</summary>
-      <returns>
-        <see langword="true" /> to indicate that the <see cref="T:System.Net.Sockets.NetworkStream" /> can be read; otherwise, <see langword="false" />. The default value is <see langword="true" />.</returns>
+      <returns>The number of bytes read from the <see cref="T:System.Net.Sockets.NetworkStream" />.</returns>
     </member>
     <member name="M:System.Net.Sockets.NetworkStream.ReadAsync(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken)">
       <summary>Reads data from the <see cref="T:System.Net.Sockets.NetworkStream" /> and stores it to a specified range of a byte array as an asynchronous operation.</summary>
       <param name="buffer">The buffer to write the data into.</param>
       <param name="offset">The location in <paramref name="buffer" /> to begin storing the data to.</param>
-      <param name="size">The number of bytes to read from the <see cref="T:System.Net.Sockets.NetworkStream" />.</param>
       <param name="cancellationToken">The token to monitor for cancellation requests.</param>
-      <returns>A task that represents the asynchronous read operation. The value of its <see cref="P:System.Threading.Tasks.Task`1.Result" /> property contains the total number of bytes read into <paramref name="buffer" />.</returns>
+      <param name="count">The number of bytes to read from the <see cref="T:System.Net.Sockets.NetworkStream" />.</param>
       <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Net.Sockets.NetworkStream" /> does not support reading.</exception>
-      <exception cref="">An error occurred when accessing the socket.
+      <exception cref="T:System.IO.IOException">An error occurred when accessing the socket.
+
 -or-
+
 There is a failure reading from the network.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.NetworkStream" /> is closed.</exception>
+      <returns>A task that represents the asynchronous read operation. The value of its <see cref="P:System.Threading.Tasks.Task`1.Result" /> property contains the total number of bytes read into <paramref name="buffer" />.</returns>
     </member>
     <member name="M:System.Net.Sockets.NetworkStream.ReadAsync(System.Memory{System.Byte},System.Threading.CancellationToken)">
       <summary>Reads data from the <see cref="T:System.Net.Sockets.NetworkStream" /> and stores it in a byte memory range as an asynchronous operation.</summary>
       <param name="buffer">The buffer to write the data to.</param>
       <param name="cancellationToken">The token to monitor for cancellation requests.</param>
-      <returns>A <see cref="T:System.Threading.Tasks.ValueTask`1" /> that represents the asynchronous read operation. The value of its <see cref="P:System.Threading.Tasks.ValueTask`1.Result" /> property contains the total number of bytes read into <paramref name="buffer" />.</returns>
       <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Net.Sockets.NetworkStream" /> does not support reading.</exception>
-      <exception cref="">An error occurred when accessing the socket.
+      <exception cref="T:System.IO.IOException">An error occurred when accessing the socket.
+
 -or-
+
 There is a failure reading from the network.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.NetworkStream" /> is closed.</exception>
+      <returns>A <see cref="T:System.Threading.Tasks.ValueTask`1" /> that represents the asynchronous read operation. The value of its <see cref="P:System.Threading.Tasks.ValueTask`1.Result" /> property contains the total number of bytes read into <paramref name="buffer" />.</returns>
     </member>
     <member name="M:System.Net.Sockets.NetworkStream.ReadByte">
       <summary>Reads a byte from the <see cref="T:System.Net.Sockets.NetworkStream" /> and advances the position within the stream by one byte, or returns -1 if at the end of the stream.</summary>
-      <returns>The unsigned byte cast to an <see langword="Int32" />, or -1 if at the end of the stream.</returns>
       <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Net.Sockets.NetworkStream" /> does not support reading.</exception>
-      <exception cref="">An error occurred when accessing the socket.
+      <exception cref="T:System.IO.IOException">An error occurred when accessing the socket.
+
 -or-
+
 There is a failure reading from the network.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.NetworkStream" /> is closed.</exception>
-    </member>
-    <member name="P:System.Net.Sockets.NetworkStream.ReadTimeout">
-      <summary>Gets or sets the amount of time that a read operation blocks waiting for data.</summary>
-      <returns>A <see cref="T:System.Int32" /> that specifies the amount of time, in milliseconds, that will elapse before a read operation fails. The default value, <see cref="F:System.Threading.Timeout.Infinite" />, specifies that the read operation does not time out.</returns>
-      <exception cref="T:System.ArgumentOutOfRangeException">The value specified is less than or equal to zero and is not <see cref="F:System.Threading.Timeout.Infinite" />.</exception>
+      <returns>The unsigned byte cast to an <see cref="T:System.Int32" />, or -1 if at the end of the stream.</returns>
     </member>
     <member name="M:System.Net.Sockets.NetworkStream.Seek(System.Int64,System.IO.SeekOrigin)">
       <summary>Sets the current position of the stream to the given value. This method is not currently supported and always throws a <see cref="T:System.NotSupportedException" />.</summary>
       <param name="offset">This parameter is not used.</param>
       <param name="origin">This parameter is not used.</param>
-      <returns>The position in the stream.</returns>
       <exception cref="T:System.NotSupportedException">Any use of this property.</exception>
+      <returns>The position in the stream.</returns>
     </member>
     <member name="M:System.Net.Sockets.NetworkStream.SetLength(System.Int64)">
       <summary>Sets the length of the stream. This method always throws a <see cref="T:System.NotSupportedException" />.</summary>
       <param name="value">This parameter is not used.</param>
       <exception cref="T:System.NotSupportedException">Any use of this property.</exception>
     </member>
-    <member name="P:System.Net.Sockets.NetworkStream.Socket">
-      <summary>Gets the underlying <see cref="T:System.Net.Sockets.Socket" />.</summary>
-      <returns>A <see cref="T:System.Net.Sockets.Socket" /> that represents the underlying network connection.</returns>
-    </member>
     <member name="M:System.Net.Sockets.NetworkStream.Write(System.Byte[],System.Int32,System.Int32)">
       <summary>Writes data to the <see cref="T:System.Net.Sockets.NetworkStream" /> from a specified range of a byte array.</summary>
       <param name="buffer">An array of type <see cref="T:System.Byte" /> that contains the data to write to the <see cref="T:System.Net.Sockets.NetworkStream" />.</param>
       <param name="offset">The location in <paramref name="buffer" /> from which to start writing data.</param>
-      <param name="size">The number of bytes to write to the <see cref="T:System.Net.Sockets.NetworkStream" />.</param>
+      <param name="count">The number of bytes to write to the <see cref="T:System.Net.Sockets.NetworkStream" />.</param>
       <exception cref="T:System.ArgumentNullException">The <paramref name="buffer" /> parameter is <see langword="null" />.</exception>
-      <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="offset" /> parameter is less than 0.
--or-
-The <paramref name="offset" /> parameter is greater than the length of <paramref name="buffer" />.
--or-
-The <paramref name="size" /> parameter is less than 0.
--or-
-The <paramref name="size" /> parameter is greater than the length of <paramref name="buffer" /> minus the value of the <paramref name="offset" /> parameter.</exception>
+      <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="offset" /> parameter is less than 0.  
+  
+ -or-  
+  
+ The <paramref name="offset" /> parameter is greater than the length of <paramref name="buffer" />.  
+  
+ -or-  
+  
+ The <paramref name="size" /> parameter is less than 0.  
+  
+ -or-  
+  
+ The <paramref name="size" /> parameter is greater than the length of <paramref name="buffer" /> minus the value of the <paramref name="offset" /> parameter.</exception>
       <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Net.Sockets.NetworkStream" /> does not support writing.</exception>
       <exception cref="T:System.IO.IOException">An error occurred when accessing the socket.
+
 -or-
+
 There was a failure while writing to the network.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.NetworkStream" /> is closed.</exception>
     </member>
@@ -531,68 +551,134 @@ There was a failure while writing to the network.</exception>
       <param name="buffer">The data to write to the <see cref="T:System.Net.Sockets.NetworkStream" />.</param>
       <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Net.Sockets.NetworkStream" /> does not support writing.</exception>
       <exception cref="T:System.IO.IOException">An error occurred when accessing the socket.
+
 -or-
+
 There was a failure while writing to the network.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.NetworkStream" /> is closed.</exception>
     </member>
-    <member name="P:System.Net.Sockets.NetworkStream.Writeable">
-      <summary>Gets a value that indicates whether the <see cref="T:System.Net.Sockets.NetworkStream" /> is writable.</summary>
-      <returns>
-        <see langword="true" /> if data can be written to the stream; otherwise, <see langword="false" />. The default value is <see langword="true" />.</returns>
-    </member>
     <member name="M:System.Net.Sockets.NetworkStream.WriteAsync(System.Byte[],System.Int32,System.Int32,System.Threading.CancellationToken)">
       <summary>Writes data to the <see cref="T:System.Net.Sockets.NetworkStream" /> from the specified range of a byte array as an asynchronous operation.</summary>
       <param name="buffer">A byte array that contains the data to write to the <see cref="T:System.Net.Sockets.NetworkStream" />.</param>
       <param name="offset">The location in <paramref name="buffer" /> from which to start writing data.</param>
-      <param name="size">The number of bytes to write to the <see cref="T:System.Net.Sockets.NetworkStream" />.</param>
       <param name="cancellationToken">The token to monitor for cancellation requests.</param>
-      <returns>A task that represents the asynchronous write operation.</returns>
+      <param name="count">The number of bytes to write to the <see cref="T:System.Net.Sockets.NetworkStream" />.</param>
       <exception cref="T:System.ArgumentNullException">The <paramref name="buffer" /> parameter is <see langword="null" />.</exception>
-      <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="offset" /> parameter is less than 0.
--or-
-The <paramref name="offset" /> parameter is greater than the length of <paramref name="buffer" />.
--or-
-The <paramref name="size" /> parameter is less than 0.
--or-
-The <paramref name="size" /> parameter is greater than the length of <paramref name="buffer" /> minus the value of the <paramref name="offset" /> parameter.</exception>
+      <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="offset" /> parameter is less than 0.  
+  
+ -or-  
+  
+ The <paramref name="offset" /> parameter is greater than the length of <paramref name="buffer" />.  
+  
+ -or-  
+  
+ The <paramref name="size" /> parameter is less than 0.  
+  
+ -or-  
+  
+ The <paramref name="size" /> parameter is greater than the length of <paramref name="buffer" /> minus the value of the <paramref name="offset" /> parameter.</exception>
       <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Net.Sockets.NetworkStream" /> does not support writing.</exception>
-      <exception cref="T:System.IO.IOException">There was a failure while writing to the network.
--or-
-An error occurred when accessing the socket.</exception>
+      <exception cref="T:System.IO.IOException">There was a failure while writing to the network.  
+  
+ -or-  
+  
+ An error occurred when accessing the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.NetworkStream" /> is closed.</exception>
+      <returns>A task that represents the asynchronous write operation.</returns>
     </member>
     <member name="M:System.Net.Sockets.NetworkStream.WriteAsync(System.ReadOnlyMemory{System.Byte},System.Threading.CancellationToken)">
       <summary>Writes data to the <see cref="T:System.Net.Sockets.NetworkStream" /> from a read-only memory byte memory range as an asynchronous operation.</summary>
       <param name="buffer">A region of memory that contains the data to write to the <see cref="T:System.Net.Sockets.NetworkStream" />.</param>
       <param name="cancellationToken">The token to monitor for cancellation requests.</param>
-      <returns>A task that represents the asynchronous write operation.</returns>
       <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Net.Sockets.NetworkStream" /> does not support writing.</exception>
       <exception cref="T:System.IO.IOException">An error occurred when accessing the socket.
+
 -or-
+
 There was a failure while writing to the network.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.NetworkStream" /> is closed.</exception>
+      <returns>A task that represents the asynchronous write operation.</returns>
     </member>
     <member name="M:System.Net.Sockets.NetworkStream.WriteByte(System.Byte)">
       <summary>Writes a byte to the current position in the <see cref="T:System.Net.Sockets.NetworkStream" /> and advances the position within the stream by one byte.</summary>
       <param name="value">The byte to write to the stream.</param>
       <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Net.Sockets.NetworkStream" /> does not support writing.</exception>
       <exception cref="T:System.IO.IOException">An error occurred when accessing the socket.
+
 -or-
+
 There was a failure while writing to the network.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.NetworkStream" /> is closed.</exception>
     </member>
-    <member name="P:System.Net.Sockets.NetworkStream.WriteTimeout">
-      <summary>Gets or sets the amount of time that a write operation blocks waiting for data.</summary>
-      <returns>A <see cref="T:System.Int32" /> that specifies the amount of time, in milliseconds, that will elapse before a write operation fails. The default value, <see cref="F:System.Threading.Timeout.Infinite" />, specifies that the write operation does not time out.</returns>
-      <exception cref="T:System.ArgumentOutOfRangeException">The value specified is less than or equal to zero and is not <see cref="F:System.Threading.Timeout.Infinite" />.</exception>
-    </member>
-    <member name="T:System.Net.Sockets.ProtocolFamily">
-      <summary>Specifies the type of protocol that an instance of the <see cref="T:System.Net.Sockets.Socket" /> class can use.</summary>
+    <member name="P:System.Net.Sockets.NetworkStream.CanRead">
+      <summary>Gets a value that indicates whether the <see cref="T:System.Net.Sockets.NetworkStream" /> supports reading.</summary>
+      <returns>
+        <see langword="true" /> if data can be read from the stream; otherwise, <see langword="false" />. The default value is <see langword="true" />.</returns>
     </member>
-    <member name="F:System.Net.Sockets.ProtocolFamily.AppleTalk">
-      <summary>AppleTalk protocol.</summary>
+    <member name="P:System.Net.Sockets.NetworkStream.CanSeek">
+      <summary>Gets a value that indicates whether the stream supports seeking. This property is not currently supported. This property always returns <see langword="false" />.</summary>
+      <returns>
+        <see langword="false" /> in all cases to indicate that <see cref="T:System.Net.Sockets.NetworkStream" /> cannot seek a specific location in the stream.</returns>
     </member>
-    <member name="F:System.Net.Sockets.ProtocolFamily.Atm">
+    <member name="P:System.Net.Sockets.NetworkStream.CanTimeout">
+      <summary>Indicates whether timeout properties are usable for <see cref="T:System.Net.Sockets.NetworkStream" />.</summary>
+      <returns>
+        <see langword="true" /> in all cases.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.NetworkStream.CanWrite">
+      <summary>Gets a value that indicates whether the <see cref="T:System.Net.Sockets.NetworkStream" /> supports writing.</summary>
+      <returns>
+        <see langword="true" /> if data can be written to the <see cref="T:System.Net.Sockets.NetworkStream" />; otherwise, <see langword="false" />. The default value is <see langword="true" />.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.NetworkStream.DataAvailable">
+      <summary>Gets a value that indicates whether data is available on the <see cref="T:System.Net.Sockets.NetworkStream" /> to be read.</summary>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.NetworkStream" /> is closed.</exception>
+      <exception cref="T:System.IO.IOException">The underlying <see cref="T:System.Net.Sockets.Socket" /> is closed.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">Use the <see cref="P:System.Net.Sockets.SocketException.ErrorCode" /> property to obtain the specific error code and refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.</exception>
+      <returns>
+        <see langword="true" /> if data is available on the stream to be read; otherwise, <see langword="false" />.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.NetworkStream.Length">
+      <summary>Gets the length of the data available on the stream. This property is not currently supported and always throws a <see cref="T:System.NotSupportedException" />.</summary>
+      <exception cref="T:System.NotSupportedException">Any use of this property.</exception>
+      <returns>The length of the data available on the stream.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.NetworkStream.Position">
+      <summary>Gets or sets the current position in the stream. This property is not currently supported and always throws a <see cref="T:System.NotSupportedException" />.</summary>
+      <exception cref="T:System.NotSupportedException">Any use of this property.</exception>
+      <returns>The current position in the stream.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.NetworkStream.Readable">
+      <summary>Gets or sets a value that indicates whether the <see cref="T:System.Net.Sockets.NetworkStream" /> can be read.</summary>
+      <returns>
+        <see langword="true" /> to indicate that the <see cref="T:System.Net.Sockets.NetworkStream" /> can be read; otherwise, <see langword="false" />. The default value is <see langword="true" />.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.NetworkStream.ReadTimeout">
+      <summary>Gets or sets the amount of time that a read operation blocks waiting for data.</summary>
+      <exception cref="T:System.ArgumentOutOfRangeException">The value specified is less than or equal to zero and is not <see cref="F:System.Threading.Timeout.Infinite" />.</exception>
+      <returns>A <see cref="T:System.Int32" /> that specifies the amount of time, in milliseconds, that will elapse before a read operation fails. The default value, <see cref="F:System.Threading.Timeout.Infinite" />, specifies that the read operation does not time out.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.NetworkStream.Socket">
+      <summary>Gets the underlying <see cref="T:System.Net.Sockets.Socket" />.</summary>
+      <returns>A <see cref="T:System.Net.Sockets.Socket" /> that represents the underlying network connection.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.NetworkStream.Writeable">
+      <summary>Gets a value that indicates whether the <see cref="T:System.Net.Sockets.NetworkStream" /> is writable.</summary>
+      <returns>
+        <see langword="true" /> if data can be written to the stream; otherwise, <see langword="false" />. The default value is <see langword="true" />.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.NetworkStream.WriteTimeout">
+      <summary>Gets or sets the amount of time that a write operation blocks waiting for data.</summary>
+      <exception cref="T:System.ArgumentOutOfRangeException">The value specified is less than or equal to zero and is not <see cref="F:System.Threading.Timeout.Infinite" />.</exception>
+      <returns>A <see cref="T:System.Int32" /> that specifies the amount of time, in milliseconds, that will elapse before a write operation fails. The default value, <see cref="F:System.Threading.Timeout.Infinite" />, specifies that the write operation does not time out.</returns>
+    </member>
+    <member name="T:System.Net.Sockets.ProtocolFamily">
+      <summary>Specifies the type of protocol that an instance of the <see cref="T:System.Net.Sockets.Socket" /> class can use.</summary>
+    </member>
+    <member name="F:System.Net.Sockets.ProtocolFamily.AppleTalk">
+      <summary>AppleTalk protocol.</summary>
+    </member>
+    <member name="F:System.Net.Sockets.ProtocolFamily.Atm">
       <summary>Native ATM services protocol.</summary>
     </member>
     <member name="F:System.Net.Sockets.ProtocolFamily.Banyan">
@@ -769,6 +855,9 @@ There was a failure while writing to the network.</exception>
     <member name="T:System.Net.Sockets.SafeSocketHandle">
       <summary>Represents a wrapper class for a socket handle.</summary>
     </member>
+    <member name="M:System.Net.Sockets.SafeSocketHandle.#ctor">
+      <summary>Creates a <see cref="T:System.Net.Sockets.SafeSocketHandle" />.</summary>
+    </member>
     <member name="M:System.Net.Sockets.SafeSocketHandle.#ctor(System.IntPtr,System.Boolean)">
       <summary>Initializes a new instance of the <see cref="T:System.Net.Sockets.SafeSocketHandle" /> class.</summary>
       <param name="preexistingHandle">The pre-existing handle to use.</param>
@@ -793,16 +882,17 @@ There was a failure while writing to the network.</exception>
     <member name="M:System.Net.Sockets.SendPacketsElement.#ctor(System.Byte[])">
       <summary>Initializes a new instance of the <see cref="T:System.Net.Sockets.SendPacketsElement" /> class using the specified buffer.</summary>
       <param name="buffer">A byte array of data to send using the <see cref="M:System.Net.Sockets.Socket.SendPacketsAsync(System.Net.Sockets.SocketAsyncEventArgs)" /> method.</param>
-      <exception cref="T:System.ArgumentNullException">The <paramref name="buffer" /> parameter cannot be null</exception>
+      <exception cref="T:System.ArgumentNullException">The <paramref name="buffer" /> parameter cannot be null.</exception>
     </member>
     <member name="M:System.Net.Sockets.SendPacketsElement.#ctor(System.Byte[],System.Int32,System.Int32)">
       <summary>Initializes a new instance of the <see cref="T:System.Net.Sockets.SendPacketsElement" /> class using the specified range of the buffer.</summary>
       <param name="buffer">A byte array of data to send using the <see cref="M:System.Net.Sockets.Socket.SendPacketsAsync(System.Net.Sockets.SocketAsyncEventArgs)" /> method.</param>
       <param name="offset">The offset, in bytes, from the beginning of the <paramref name="buffer" /> to the location in the <paramref name="buffer" /> to start sending the data specified in the <paramref name="buffer" /> parameter.</param>
       <param name="count">The number of bytes to send starting from the <paramref name="offset" /> parameter. If <paramref name="count" /> is zero, no bytes are sent.</param>
-      <exception cref="T:System.ArgumentNullException">The <paramref name="buffer" /> parameter cannot be null</exception>
-      <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="offset" /> and <paramref name="count" /> parameters must be greater than or equal to zero.
-The <paramref name="offset" /> and <paramref name="count" /> must be less than the size of the buffer</exception>
+      <exception cref="T:System.ArgumentNullException">The <paramref name="buffer" /> parameter cannot be null.</exception>
+      <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="offset" /> and <paramref name="count" /> parameters must be greater than or equal to zero.  
+  
+ The <paramref name="offset" /> and <paramref name="count" /> must be less than the size of the buffer.</exception>
     </member>
     <member name="M:System.Net.Sockets.SendPacketsElement.#ctor(System.Byte[],System.Int32,System.Int32,System.Boolean)">
       <summary>Initializes a new instance of the <see cref="T:System.Net.Sockets.SendPacketsElement" /> class using the specified range of the buffer with an option to combine this element with the next element in a single send request from the sockets layer to the transport.</summary>
@@ -810,9 +900,10 @@ The <paramref name="offset" /> and <paramref name="count" /> must be less than t
       <param name="offset">The offset, in bytes, from the beginning of the <paramref name="buffer" /> to the location in the <paramref name="buffer" /> to start sending the data specified in the <paramref name="buffer" /> parameter.</param>
       <param name="count">The number bytes to send starting from the <paramref name="offset" /> parameter. If <paramref name="count" /> is zero, no bytes are sent.</param>
       <param name="endOfPacket">A Boolean value that specifies that this element should not be combined with the next element in a single send request from the sockets layer to the transport. This flag is used for granular control of the content of each message on a datagram or message-oriented socket.</param>
-      <exception cref="T:System.ArgumentNullException">The <paramref name="buffer" /> parameter cannot be null</exception>
-      <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="offset" /> and <paramref name="count" /> parameters must be greater than or equal to zero.
-The <paramref name="offset" /> and <paramref name="count" /> must be less than the size of the buffer</exception>
+      <exception cref="T:System.ArgumentNullException">The <paramref name="buffer" /> parameter cannot be null.</exception>
+      <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="offset" /> and <paramref name="count" /> parameters must be greater than or equal to zero.  
+  
+ The <paramref name="offset" /> and <paramref name="count" /> must be less than the size of the buffer.</exception>
     </member>
     <member name="M:System.Net.Sockets.SendPacketsElement.#ctor(System.IO.FileStream)">
       <summary>Initializes a new instance of the <see cref="T:System.Net.Sockets.SendPacketsElement" /> class using the specified <see cref="T:System.IO.FileStream" /> object.</summary>
@@ -841,17 +932,26 @@ The <paramref name="offset" /> and <paramref name="count" /> must be less than t
       <exception cref="T:System.ArgumentNullException">The <paramref name="fileStream" /> parameter cannot be <see langword="null" />.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="offset" /> and <paramref name="count" /> parameters must be greater than or equal to zero.</exception>
     </member>
+    <member name="M:System.Net.Sockets.SendPacketsElement.#ctor(System.ReadOnlyMemory{System.Byte})">
+      <summary>Initializes a new instance of the <see cref="T:System.Net.Sockets.SendPacketsElement" /> class using the specified buffer.</summary>
+      <param name="buffer">A <see cref="T:System.ReadOnlyMemory`1" /> of bytes to send using the <see cref="M:System.Net.Sockets.Socket.SendPacketsAsync(System.Net.Sockets.SocketAsyncEventArgs)" /> method.</param>
+    </member>
+    <member name="M:System.Net.Sockets.SendPacketsElement.#ctor(System.ReadOnlyMemory{System.Byte},System.Boolean)">
+      <summary>Initializes a new instance of the <see cref="T:System.Net.Sockets.SendPacketsElement" /> class using the specified buffer with an option to combine this element with the next element in a single send request from the sockets layer to the transport.</summary>
+      <param name="buffer">A <see cref="T:System.ReadOnlyMemory`1" /> of bytes to send using the <see cref="M:System.Net.Sockets.Socket.SendPacketsAsync(System.Net.Sockets.SocketAsyncEventArgs)" /> method.</param>
+      <param name="endOfPacket">Specifies that this element should not be combined with the next element in a single send request from the sockets layer to the transport. This flag is used for granular control of the content of each message on a datagram or message-oriented socket.</param>
+    </member>
     <member name="M:System.Net.Sockets.SendPacketsElement.#ctor(System.String)">
       <summary>Initializes a new instance of the <see cref="T:System.Net.Sockets.SendPacketsElement" /> class using the specified file.</summary>
       <param name="filepath">The filename of the file to be transmitted using the <see cref="M:System.Net.Sockets.Socket.SendPacketsAsync(System.Net.Sockets.SocketAsyncEventArgs)" /> method.</param>
-      <exception cref="T:System.ArgumentNullException">The <paramref name="filepath" /> parameter cannot be null</exception>
+      <exception cref="T:System.ArgumentNullException">The <paramref name="filepath" /> parameter cannot be null.</exception>
     </member>
     <member name="M:System.Net.Sockets.SendPacketsElement.#ctor(System.String,System.Int32,System.Int32)">
       <summary>Initializes a new instance of the <see cref="T:System.Net.Sockets.SendPacketsElement" /> class using the specified range of the file.</summary>
       <param name="filepath">The filename of the file to be transmitted using the <see cref="M:System.Net.Sockets.Socket.SendPacketsAsync(System.Net.Sockets.SocketAsyncEventArgs)" /> method.</param>
       <param name="offset">The offset, in bytes, from the beginning of the file to the location in the file to start sending the file specified in the <paramref name="filepath" /> parameter.</param>
       <param name="count">The number of bytes to send starting from the <paramref name="offset" /> parameter. If <paramref name="count" /> is zero, the entire file is sent.</param>
-      <exception cref="T:System.ArgumentNullException">The <paramref name="filepath" /> parameter cannot be null</exception>
+      <exception cref="T:System.ArgumentNullException">The <paramref name="filepath" /> parameter cannot be null.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="offset" /> and <paramref name="count" /> parameters must be greater than or equal to zero.</exception>
     </member>
     <member name="M:System.Net.Sockets.SendPacketsElement.#ctor(System.String,System.Int32,System.Int32,System.Boolean)">
@@ -860,7 +960,7 @@ The <paramref name="offset" /> and <paramref name="count" /> must be less than t
       <param name="offset">The offset, in bytes, from the beginning of the file to the location in the file to start sending the file specified in the <paramref name="filepath" /> parameter.</param>
       <param name="count">The number of bytes to send starting from the <paramref name="offset" /> parameter. If <paramref name="count" /> is zero, the entire file is sent.</param>
       <param name="endOfPacket">A Boolean value that specifies that this element should not be combined with the next element in a single send request from the sockets layer to the transport. This flag is used for granular control of the content of each message on a datagram or message-oriented socket.</param>
-      <exception cref="T:System.ArgumentNullException">The <paramref name="filepath" /> parameter cannot be null</exception>
+      <exception cref="T:System.ArgumentNullException">The <paramref name="filepath" /> parameter cannot be null.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="offset" /> and <paramref name="count" /> parameters must be greater than or equal to zero.</exception>
     </member>
     <member name="M:System.Net.Sockets.SendPacketsElement.#ctor(System.String,System.Int64,System.Int32)">
@@ -900,6 +1000,10 @@ The <paramref name="offset" /> and <paramref name="count" /> must be less than t
       <summary>Gets the object representation of the file to send if the <see cref="T:System.Net.Sockets.SendPacketsElement" /> object was initialized with a <see cref="T:System.IO.FileStream" /> parameter.</summary>
       <returns>An object representation of the file to send if the <see cref="T:System.Net.Sockets.SendPacketsElement" /> object was initialized with a <see cref="T:System.IO.FileStream" /> parameter.</returns>
     </member>
+    <member name="P:System.Net.Sockets.SendPacketsElement.MemoryBuffer">
+      <summary>Gets the buffer to be sent if the <see cref="T:System.Net.Sockets.SendPacketsElement" /> object was initialized with a <code>buffer</code> parameter.</summary>
+      <returns>The <see cref="T:System.ReadOnlyMemory`1" /> of bytes to be sent if the <see cref="T:System.Net.Sockets.SendPacketsElement" /> object was initialized with a <code>buffer</code> parameter.</returns>
+    </member>
     <member name="P:System.Net.Sockets.SendPacketsElement.Offset">
       <summary>Gets the offset, in bytes, from the beginning of the data buffer or file to the location in the buffer or file to start sending the data.</summary>
       <returns>The offset, in bytes, from the beginning of the data buffer or file to the location in the buffer or file to start sending the data.</returns>
@@ -918,77 +1022,105 @@ The <paramref name="offset" /> and <paramref name="count" /> must be less than t
       <param name="protocolType">One of the <see cref="T:System.Net.Sockets.ProtocolType" /> values.</param>
       <exception cref="T:System.Net.Sockets.SocketException">The combination of <paramref name="addressFamily" />, <paramref name="socketType" />, and <paramref name="protocolType" /> results in an invalid socket.</exception>
     </member>
+    <member name="M:System.Net.Sockets.Socket.#ctor(System.Net.Sockets.SafeSocketHandle)">
+      <summary>Initializes a new instance of the <see cref="T:System.Net.Sockets.Socket" /> class for the specified socket handle.</summary>
+      <param name="handle">The socket handle for the socket that the <see cref="T:System.Net.Sockets.Socket" /> object will encapsulate.</param>
+      <exception cref="T:System.ArgumentNullException">
+        <paramref name="handle" /> is <see langword="null" />.</exception>
+      <exception cref="T:System.ArgumentException">
+        <paramref name="handle" /> is invalid.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">
+        <paramref name="handle" /> is not a socket or information about the socket could not be accessed.</exception>
+    </member>
     <member name="M:System.Net.Sockets.Socket.#ctor(System.Net.Sockets.SocketInformation)">
       <summary>Initializes a new instance of the <see cref="T:System.Net.Sockets.Socket" /> class using the specified value returned from <see cref="M:System.Net.Sockets.Socket.DuplicateAndClose(System.Int32)" />.</summary>
       <param name="socketInformation">The socket information returned by <see cref="M:System.Net.Sockets.Socket.DuplicateAndClose(System.Int32)" />.</param>
     </member>
     <member name="M:System.Net.Sockets.Socket.#ctor(System.Net.Sockets.SocketType,System.Net.Sockets.ProtocolType)">
-      <summary>Initializes a new instance of the <see cref="T:System.Net.Sockets.Socket" /> class using the specified socket type and protocol.</summary>
+      <summary>Initializes a new instance of the <see cref="T:System.Net.Sockets.Socket" /> class using the specified socket type and protocol. If the operating system supports IPv6, this constructor creates a dual-mode socket; otherwise, it creates an IPv4 socket.</summary>
       <param name="socketType">One of the <see cref="T:System.Net.Sockets.SocketType" /> values.</param>
       <param name="protocolType">One of the <see cref="T:System.Net.Sockets.ProtocolType" /> values.</param>
       <exception cref="T:System.Net.Sockets.SocketException">The combination of  <paramref name="socketType" /> and <paramref name="protocolType" /> results in an invalid socket.</exception>
     </member>
     <member name="M:System.Net.Sockets.Socket.Accept">
       <summary>Creates a new <see cref="T:System.Net.Sockets.Socket" /> for a newly created connection.</summary>
-      <returns>A <see cref="T:System.Net.Sockets.Socket" /> for a newly created connection.</returns>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
       <exception cref="T:System.InvalidOperationException">The accepting socket is not listening for connections. You must call <see cref="M:System.Net.Sockets.Socket.Bind(System.Net.EndPoint)" /> and <see cref="M:System.Net.Sockets.Socket.Listen(System.Int32)" /> before calling <see cref="M:System.Net.Sockets.Socket.Accept" />.</exception>
+      <returns>A <see cref="T:System.Net.Sockets.Socket" /> for a newly created connection.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.Socket.AcceptAsync">
+      <summary>Accepts an incoming connection.</summary>
+      <returns>An asynchronous task that completes with the accepted Socket.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.Socket.AcceptAsync(System.Net.Sockets.Socket)">
+      <summary>Accepts an incoming connection.</summary>
+      <param name="acceptSocket">The socket to use for accepting the connection.</param>
+      <returns>An asynchronous task that completes with the accepted Socket.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.Socket.AcceptAsync(System.Net.Sockets.Socket,System.Threading.CancellationToken)">
+      <summary>Accepts an incoming connection.</summary>
+      <param name="acceptSocket">The socket to use for accepting the connection.</param>
+      <param name="cancellationToken">A cancellation token that can be used to cancel the asynchronous operation.</param>
+      <returns>An asynchronous task that completes with the accepted Socket.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.AcceptAsync(System.Net.Sockets.SocketAsyncEventArgs)">
       <summary>Begins an asynchronous operation to accept an incoming connection attempt.</summary>
       <param name="e">The <see cref="T:System.Net.Sockets.SocketAsyncEventArgs" /> object to use for this asynchronous socket operation.</param>
-      <returns>
-        <see langword="true" /> if the I/O operation is pending. The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will be raised upon completion of the operation.
-<see langword="false" /> if the I/O operation completed synchronously. The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will not be raised and the <paramref name="e" /> object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation.</returns>
       <exception cref="T:System.ArgumentException">An argument is not valid. This exception occurs if the buffer provided is not large enough. The buffer must be at least 2 * (sizeof(SOCKADDR_STORAGE + 16) bytes.
-This exception also occurs if multiple buffers are specified, the <see cref="P:System.Net.Sockets.SocketAsyncEventArgs.BufferList" /> property is not null.</exception>
+
+ This exception also occurs if multiple buffers are specified, the <see cref="P:System.Net.Sockets.SocketAsyncEventArgs.BufferList" /> property is not null.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">An argument is out of range. The exception occurs if the <see cref="P:System.Net.Sockets.SocketAsyncEventArgs.Count" /> is less than 0.</exception>
       <exception cref="T:System.InvalidOperationException">An invalid operation was requested. This exception occurs if the accepting <see cref="T:System.Net.Sockets.Socket" /> is not listening for connections or the accepted socket is bound.
-You must call the <see cref="M:System.Net.Sockets.Socket.Bind(System.Net.EndPoint)" /> and <see cref="M:System.Net.Sockets.Socket.Listen(System.Int32)" /> method before calling the <see cref="M:System.Net.Sockets.Socket.AcceptAsync(System.Net.Sockets.SocketAsyncEventArgs)" /> method.
-This exception also occurs if the socket is already connected or a socket operation was already in progress using the specified <paramref name="e" /> parameter.</exception>
+
+ You must call the <see cref="M:System.Net.Sockets.Socket.Bind(System.Net.EndPoint)" /> and <see cref="M:System.Net.Sockets.Socket.Listen(System.Int32)" /> method before calling the <see cref="M:System.Net.Sockets.Socket.AcceptAsync(System.Net.Sockets.SocketAsyncEventArgs)" /> method.
+
+ This exception also occurs if the socket is already connected or a socket operation was already in progress using the specified <paramref name="e" /> parameter.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.NotSupportedException">Windows XP or later is required for this method.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>
+        <see langword="true" /> if the I/O operation is pending. The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will be raised upon completion of the operation.
+
+ <see langword="false" /> if the I/O operation completed synchronously. The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will not be raised and the <paramref name="e" /> object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation.</returns>
     </member>
-    <member name="P:System.Net.Sockets.Socket.AddressFamily">
-      <summary>Gets the address family of the <see cref="T:System.Net.Sockets.Socket" />.</summary>
-      <returns>One of the <see cref="T:System.Net.Sockets.AddressFamily" /> values.</returns>
-    </member>
-    <member name="P:System.Net.Sockets.Socket.Available">
-      <summary>Gets the amount of data that has been received from the network and is available to be read.</summary>
-      <returns>The number of bytes of data received from the network and available to be read.</returns>
-      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
-      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+    <member name="M:System.Net.Sockets.Socket.AcceptAsync(System.Threading.CancellationToken)">
+      <summary>Accepts an incoming connection.</summary>
+      <param name="cancellationToken">A cancellation token that can be used to cancel the asynchronous operation.</param>
+      <returns>An asynchronous task that completes with the accepted Socket.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.BeginAccept(System.AsyncCallback,System.Object)">
       <summary>Begins an asynchronous operation to accept an incoming connection attempt.</summary>
       <param name="callback">The <see cref="T:System.AsyncCallback" /> delegate.</param>
       <param name="state">An object that contains state information for this request.</param>
-      <returns>An <see cref="T:System.IAsyncResult" /> that references the asynchronous <see cref="T:System.Net.Sockets.Socket" /> creation.</returns>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> object has been closed.</exception>
       <exception cref="T:System.NotSupportedException">Windows NT is required for this method.</exception>
       <exception cref="T:System.InvalidOperationException">The accepting socket is not listening for connections. You must call <see cref="M:System.Net.Sockets.Socket.Bind(System.Net.EndPoint)" /> and <see cref="M:System.Net.Sockets.Socket.Listen(System.Int32)" /> before calling <see cref="M:System.Net.Sockets.Socket.BeginAccept(System.AsyncCallback,System.Object)" />.
--or-
-The accepted socket is bound.</exception>
+
+ -or-
+
+ The accepted socket is bound.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
         <paramref name="receiveSize" /> is less than 0.</exception>
-      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">.NET Framework and .NET 5 and earlier only: An error occurred when attempting to access the socket.</exception>
+      <returns>An <see cref="T:System.IAsyncResult" /> that references the asynchronous <see cref="T:System.Net.Sockets.Socket" /> creation.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.BeginAccept(System.Int32,System.AsyncCallback,System.Object)">
       <summary>Begins an asynchronous operation to accept an incoming connection attempt and receives the first block of data sent by the client application.</summary>
       <param name="receiveSize">The number of bytes to accept from the sender.</param>
       <param name="callback">The <see cref="T:System.AsyncCallback" /> delegate.</param>
       <param name="state">An object that contains state information for this request.</param>
-      <returns>An <see cref="T:System.IAsyncResult" /> that references the asynchronous <see cref="T:System.Net.Sockets.Socket" /> creation.</returns>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> object has been closed.</exception>
       <exception cref="T:System.NotSupportedException">Windows NT is required for this method.</exception>
       <exception cref="T:System.InvalidOperationException">The accepting socket is not listening for connections. You must call <see cref="M:System.Net.Sockets.Socket.Bind(System.Net.EndPoint)" /> and <see cref="M:System.Net.Sockets.Socket.Listen(System.Int32)" /> before calling <see cref="M:System.Net.Sockets.Socket.BeginAccept(System.AsyncCallback,System.Object)" />.
--or-
-The accepted socket is bound.</exception>
+
+ -or-
+
+ The accepted socket is bound.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
         <paramref name="receiveSize" /> is less than 0.</exception>
-      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">.NET Framework and .NET 5 and earlier only: An error occurred when attempting to access the socket.</exception>
+      <returns>An <see cref="T:System.IAsyncResult" /> that references the asynchronous <see cref="T:System.Net.Sockets.Socket" /> creation.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.BeginAccept(System.Net.Sockets.Socket,System.Int32,System.AsyncCallback,System.Object)">
       <summary>Begins an asynchronous operation to accept an incoming connection attempt from a specified socket and receives the first block of data sent by the client application.</summary>
@@ -996,28 +1128,30 @@ The accepted socket is bound.</exception>
       <param name="receiveSize">The maximum number of bytes to receive.</param>
       <param name="callback">The <see cref="T:System.AsyncCallback" /> delegate.</param>
       <param name="state">An object that contains state information for this request.</param>
-      <returns>An <see cref="T:System.IAsyncResult" /> object that references the asynchronous <see cref="T:System.Net.Sockets.Socket" /> object creation.</returns>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> object has been closed.</exception>
       <exception cref="T:System.NotSupportedException">Windows NT is required for this method.</exception>
       <exception cref="T:System.InvalidOperationException">The accepting socket is not listening for connections. You must call <see cref="M:System.Net.Sockets.Socket.Bind(System.Net.EndPoint)" /> and <see cref="M:System.Net.Sockets.Socket.Listen(System.Int32)" /> before calling <see cref="M:System.Net.Sockets.Socket.BeginAccept(System.AsyncCallback,System.Object)" />.
--or-
-The accepted socket is bound.</exception>
+
+ -or-
+
+ The accepted socket is bound.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
         <paramref name="receiveSize" /> is less than 0.</exception>
-      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">.NET Framework and .NET 5 and earlier only: An error occurred when attempting to access the socket.</exception>
+      <returns>An <see cref="T:System.IAsyncResult" /> object that references the asynchronous <see cref="T:System.Net.Sockets.Socket" /> object creation.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.BeginConnect(System.Net.EndPoint,System.AsyncCallback,System.Object)">
       <summary>Begins an asynchronous request for a remote host connection.</summary>
       <param name="remoteEP">An <see cref="T:System.Net.EndPoint" /> that represents the remote host.</param>
       <param name="callback">The <see cref="T:System.AsyncCallback" /> delegate.</param>
       <param name="state">An object that contains state information for this request.</param>
-      <returns>An <see cref="T:System.IAsyncResult" /> that references the asynchronous connection.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="remoteEP" /> is <see langword="null" />.</exception>
-      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">.NET Framework and .NET 5 and earlier only: An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
       <exception cref="T:System.Security.SecurityException">A caller higher in the call stack does not have permission for the requested operation.</exception>
       <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Net.Sockets.Socket" /> has been placed in a listening state by calling <see cref="M:System.Net.Sockets.Socket.Listen(System.Int32)" />, or an asynchronous operation is already in progress.</exception>
+      <returns>An <see cref="T:System.IAsyncResult" /> that references the asynchronous connection.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.BeginConnect(System.Net.IPAddress,System.Int32,System.AsyncCallback,System.Object)">
       <summary>Begins an asynchronous request for a remote host connection. The host is specified by an <see cref="T:System.Net.IPAddress" /> and a port number.</summary>
@@ -1025,15 +1159,15 @@ The accepted socket is bound.</exception>
       <param name="port">The port number of the remote host.</param>
       <param name="requestCallback">An <see cref="T:System.AsyncCallback" /> delegate that references the method to invoke when the connect operation is complete.</param>
       <param name="state">A user-defined object that contains information about the connect operation. This object is passed to the <paramref name="requestCallback" /> delegate when the operation is complete.</param>
-      <returns>An <see cref="T:System.IAsyncResult" /> that references the asynchronous connection.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="address" /> is <see langword="null" />.</exception>
-      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">.NET Framework and .NET 5 and earlier only: An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
       <exception cref="T:System.NotSupportedException">The <see cref="T:System.Net.Sockets.Socket" /> is not in the socket family.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">The port number is not valid.</exception>
       <exception cref="T:System.ArgumentException">The length of <paramref name="address" /> is zero.</exception>
       <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Net.Sockets.Socket" /> has been placed in a listening state by calling <see cref="M:System.Net.Sockets.Socket.Listen(System.Int32)" />, or an asynchronous operation is already in progress.</exception>
+      <returns>An <see cref="T:System.IAsyncResult" /> that references the asynchronous connection.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.BeginConnect(System.Net.IPAddress[],System.Int32,System.AsyncCallback,System.Object)">
       <summary>Begins an asynchronous request for a remote host connection. The host is specified by an <see cref="T:System.Net.IPAddress" /> array and a port number.</summary>
@@ -1041,15 +1175,15 @@ The accepted socket is bound.</exception>
       <param name="port">The port number of the remote host.</param>
       <param name="requestCallback">An <see cref="T:System.AsyncCallback" /> delegate that references the method to invoke when the connect operation is complete.</param>
       <param name="state">A user-defined object that contains information about the connect operation. This object is passed to the <paramref name="requestCallback" /> delegate when the operation is complete.</param>
-      <returns>An <see cref="T:System.IAsyncResult" /> that references the asynchronous connections.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="addresses" /> is <see langword="null" />.</exception>
-      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">.NET Framework and .NET 5 and earlier only: An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
       <exception cref="T:System.NotSupportedException">This method is valid for sockets that use <see cref="F:System.Net.Sockets.AddressFamily.InterNetwork" /> or <see cref="F:System.Net.Sockets.AddressFamily.InterNetworkV6" />.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">The port number is not valid.</exception>
       <exception cref="T:System.ArgumentException">The length of <paramref name="address" /> is zero.</exception>
       <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Net.Sockets.Socket" /> has been placed in a listening state by calling <see cref="M:System.Net.Sockets.Socket.Listen(System.Int32)" />, or an asynchronous operation is already in progress.</exception>
+      <returns>An <see cref="T:System.IAsyncResult" /> that references the asynchronous connections.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.BeginConnect(System.String,System.Int32,System.AsyncCallback,System.Object)">
       <summary>Begins an asynchronous request for a remote host connection. The host is specified by a host name and a port number.</summary>
@@ -1057,13 +1191,13 @@ The accepted socket is bound.</exception>
       <param name="port">The port number of the remote host.</param>
       <param name="requestCallback">An <see cref="T:System.AsyncCallback" /> delegate that references the method to invoke when the connect operation is complete.</param>
       <param name="state">A user-defined object that contains information about the connect operation. This object is passed to the <paramref name="requestCallback" /> delegate when the operation is complete.</param>
-      <returns>An <see cref="T:System.IAsyncResult" /> that references the asynchronous connection.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="host" /> is <see langword="null" />.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
       <exception cref="T:System.NotSupportedException">This method is valid for sockets in the <see cref="F:System.Net.Sockets.AddressFamily.InterNetwork" /> or <see cref="F:System.Net.Sockets.AddressFamily.InterNetworkV6" /> families.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">The port number is not valid.</exception>
       <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Net.Sockets.Socket" /> has been placed in a listening state by calling <see cref="M:System.Net.Sockets.Socket.Listen(System.Int32)" />, or an asynchronous operation is already in progress.</exception>
+      <returns>An <see cref="T:System.IAsyncResult" /> that references the asynchronous connection.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.BeginDisconnect(System.Boolean,System.AsyncCallback,System.Object)">
       <summary>Begins an asynchronous request to disconnect from a remote endpoint.</summary>
@@ -1071,10 +1205,9 @@ The accepted socket is bound.</exception>
         <see langword="true" /> if this socket can be reused after the connection is closed; otherwise, <see langword="false" />.</param>
       <param name="callback">The <see cref="T:System.AsyncCallback" /> delegate.</param>
       <param name="state">An object that contains state information for this request.</param>
-      <returns>An <see cref="T:System.IAsyncResult" /> object that references the asynchronous operation.</returns>
-      <exception cref="T:System.NotSupportedException">The operating system is Windows 2000 or earlier, and this method requires Windows XP.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> object has been closed.</exception>
-      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">.NET Framework and .NET 5 and earlier only: An error occurred when attempting to access the socket.</exception>
+      <returns>An <see cref="T:System.IAsyncResult" /> object that references the asynchronous operation.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.BeginReceive(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)">
       <summary>Begins to asynchronously receive data from a connected <see cref="T:System.Net.Sockets.Socket" />.</summary>
@@ -1084,20 +1217,26 @@ The accepted socket is bound.</exception>
       <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
       <param name="callback">An <see cref="T:System.AsyncCallback" /> delegate that references the method to invoke when the operation is complete.</param>
       <param name="state">A user-defined object that contains information about the receive operation. This object is passed to the <see cref="M:System.Net.Sockets.Socket.EndReceive(System.IAsyncResult)" /> delegate when the operation is complete.</param>
-      <returns>An <see cref="T:System.IAsyncResult" /> that references the asynchronous read.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="buffer" /> is <see langword="null" />.</exception>
-      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">.NET Framework and .NET 5 and earlier only: An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">
         <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
         <paramref name="offset" /> is less than 0.
--or-
-<paramref name="offset" /> is greater than the length of <paramref name="buffer" />.
--or-
-<paramref name="size" /> is less than 0.
--or-
-<paramref name="size" /> is greater than the length of <paramref name="buffer" /> minus the value of the <paramref name="offset" /> parameter.</exception>
+
+ -or-
+
+ <paramref name="offset" /> is greater than the length of <paramref name="buffer" />.
+
+ -or-
+
+ <paramref name="size" /> is less than 0.
+
+ -or-
+
+ <paramref name="size" /> is greater than the length of <paramref name="buffer" /> minus the value of the <paramref name="offset" /> parameter.</exception>
+      <returns>An <see cref="T:System.IAsyncResult" /> that references the asynchronous read.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.BeginReceive(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.Sockets.SocketError@,System.AsyncCallback,System.Object)">
       <summary>Begins to asynchronously receive data from a connected <see cref="T:System.Net.Sockets.Socket" />.</summary>
@@ -1108,20 +1247,26 @@ The accepted socket is bound.</exception>
       <param name="errorCode">A <see cref="T:System.Net.Sockets.SocketError" /> object that stores the socket error.</param>
       <param name="callback">An <see cref="T:System.AsyncCallback" /> delegate that references the method to invoke when the operation is complete.</param>
       <param name="state">A user-defined object that contains information about the receive operation. This object is passed to the <see cref="M:System.Net.Sockets.Socket.EndReceive(System.IAsyncResult)" /> delegate when the operation is complete.</param>
-      <returns>An <see cref="T:System.IAsyncResult" /> that references the asynchronous read.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="buffer" /> is <see langword="null" />.</exception>
-      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">.NET Framework and .NET 5 and earlier only: An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">
         <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
         <paramref name="offset" /> is less than 0.
--or-
-<paramref name="offset" /> is greater than the length of <paramref name="buffer" />.
--or-
-<paramref name="size" /> is less than 0.
--or-
-<paramref name="size" /> is greater than the length of <paramref name="buffer" /> minus the value of the <paramref name="offset" /> parameter.</exception>
+
+ -or-
+
+ <paramref name="offset" /> is greater than the length of <paramref name="buffer" />.
+
+ -or-
+
+ <paramref name="size" /> is less than 0.
+
+ -or-
+
+ <paramref name="size" /> is greater than the length of <paramref name="buffer" /> minus the value of the <paramref name="offset" /> parameter.</exception>
+      <returns>An <see cref="T:System.IAsyncResult" /> that references the asynchronous read.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.BeginReceive(System.Collections.Generic.IList{System.ArraySegment{System.Byte}},System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)">
       <summary>Begins to asynchronously receive data from a connected <see cref="T:System.Net.Sockets.Socket" />.</summary>
@@ -1129,12 +1274,12 @@ The accepted socket is bound.</exception>
       <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
       <param name="callback">An <see cref="T:System.AsyncCallback" /> delegate that references the method to invoke when the operation is complete.</param>
       <param name="state">A user-defined object that contains information about the receive operation. This object is passed to the <see cref="M:System.Net.Sockets.Socket.EndReceive(System.IAsyncResult)" /> delegate when the operation is complete.</param>
-      <returns>An <see cref="T:System.IAsyncResult" /> that references the asynchronous read.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="buffer" /> is <see langword="null" />.</exception>
-      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">.NET Framework and .NET 5 and earlier only: An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">
         <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>An <see cref="T:System.IAsyncResult" /> that references the asynchronous read.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.BeginReceive(System.Collections.Generic.IList{System.ArraySegment{System.Byte}},System.Net.Sockets.SocketFlags,System.Net.Sockets.SocketError@,System.AsyncCallback,System.Object)">
       <summary>Begins to asynchronously receive data from a connected <see cref="T:System.Net.Sockets.Socket" />.</summary>
@@ -1143,12 +1288,12 @@ The accepted socket is bound.</exception>
       <param name="errorCode">A <see cref="T:System.Net.Sockets.SocketError" /> object that stores the socket error.</param>
       <param name="callback">An <see cref="T:System.AsyncCallback" /> delegate that references the method to invoke when the operation is complete.</param>
       <param name="state">A user-defined object that contains information about the receive operation. This object is passed to the <see cref="M:System.Net.Sockets.Socket.EndReceive(System.IAsyncResult)" /> delegate when the operation is complete.</param>
-      <returns>An <see cref="T:System.IAsyncResult" /> that references the asynchronous read.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="buffer" /> is <see langword="null" />.</exception>
-      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">.NET Framework and .NET 5 and earlier only: An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">
         <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>An <see cref="T:System.IAsyncResult" /> that references the asynchronous read.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.BeginReceiveFrom(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint@,System.AsyncCallback,System.Object)">
       <summary>Begins to asynchronously receive data from a specified network device.</summary>
@@ -1159,22 +1304,30 @@ The accepted socket is bound.</exception>
       <param name="remoteEP">An <see cref="T:System.Net.EndPoint" /> that represents the source of the data.</param>
       <param name="callback">The <see cref="T:System.AsyncCallback" /> delegate.</param>
       <param name="state">An object that contains state information for this request.</param>
-      <returns>An <see cref="T:System.IAsyncResult" /> that references the asynchronous read.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="buffer" /> is <see langword="null" />.
--or-
-<paramref name="remoteEP" /> is <see langword="null" />.</exception>
-      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+
+ -or-
+
+ <paramref name="remoteEP" /> is <see langword="null" />.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">.NET Framework and .NET 5 and earlier only: An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
         <paramref name="offset" /> is less than 0.
--or-
-<paramref name="offset" /> is greater than the length of <paramref name="buffer" />.
--or-
-<paramref name="size" /> is less than 0.
--or-
-<paramref name="size" /> is greater than the length of <paramref name="buffer" /> minus the value of the <paramref name="offset" /> parameter.</exception>
+
+ -or-
+
+ <paramref name="offset" /> is greater than the length of <paramref name="buffer" />.
+
+ -or-
+
+ <paramref name="size" /> is less than 0.
+
+ -or-
+
+ <paramref name="size" /> is greater than the length of <paramref name="buffer" /> minus the value of the <paramref name="offset" /> parameter.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
       <exception cref="T:System.Security.SecurityException">A caller higher in the call stack does not have permission for the requested operation.</exception>
+      <returns>An <see cref="T:System.IAsyncResult" /> that references the asynchronous read.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.BeginReceiveMessageFrom(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint@,System.AsyncCallback,System.Object)">
       <summary>Begins to asynchronously receive the specified number of bytes of data into the specified location of the data buffer, using the specified <see cref="T:System.Net.Sockets.SocketFlags" />, and stores the endpoint and packet information.</summary>
@@ -1185,22 +1338,29 @@ The accepted socket is bound.</exception>
       <param name="remoteEP">An <see cref="T:System.Net.EndPoint" /> that represents the source of the data.</param>
       <param name="callback">The <see cref="T:System.AsyncCallback" /> delegate.</param>
       <param name="state">An object that contains state information for this request.</param>
-      <returns>An <see cref="T:System.IAsyncResult" /> that references the asynchronous read.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="buffer" /> is <see langword="null" />.
--or-
-<paramref name="remoteEP" /> is <see langword="null" />.</exception>
-      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+
+ -or-
+
+ <paramref name="remoteEP" /> is <see langword="null" />.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">.NET Framework and .NET 5 and earlier only: An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
         <paramref name="offset" /> is less than 0.
--or-
-<paramref name="offset" /> is greater than the length of <paramref name="buffer" />.
--or-
-<paramref name="size" /> is less than 0.
--or-
-<paramref name="size" /> is greater than the length of <paramref name="buffer" /> minus the value of the <paramref name="offset" /> parameter.</exception>
+
+ -or-
+
+ <paramref name="offset" /> is greater than the length of <paramref name="buffer" />.
+
+ -or-
+
+ <paramref name="size" /> is less than 0.
+
+ -or-
+
+ <paramref name="size" /> is greater than the length of <paramref name="buffer" /> minus the value of the <paramref name="offset" /> parameter.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
-      <exception cref="T:System.NotSupportedException">The operating system is Windows 2000 or earlier, and this method requires Windows XP.</exception>
+      <returns>An <see cref="T:System.IAsyncResult" /> that references the asynchronous read.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.BeginSend(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)">
       <summary>Sends data asynchronously to a connected <see cref="T:System.Net.Sockets.Socket" />.</summary>
@@ -1210,19 +1370,25 @@ The accepted socket is bound.</exception>
       <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
       <param name="callback">The <see cref="T:System.AsyncCallback" /> delegate.</param>
       <param name="state">An object that contains state information for this request.</param>
-      <returns>An <see cref="T:System.IAsyncResult" /> that references the asynchronous send.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="buffer" /> is <see langword="null" />.</exception>
-      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket. See remarks section below.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">.NET Framework and .NET 5 and earlier only: An error occurred when attempting to access the socket. See remarks section below.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
         <paramref name="offset" /> is less than 0.
--or-
-<paramref name="offset" /> is less than the length of <paramref name="buffer" />.
--or-
-<paramref name="size" /> is less than 0.
--or-
-<paramref name="size" /> is greater than the length of <paramref name="buffer" /> minus the value of the <paramref name="offset" /> parameter.</exception>
+
+ -or-
+
+ <paramref name="offset" /> is less than the length of <paramref name="buffer" />.
+
+ -or-
+
+ <paramref name="size" /> is less than 0.
+
+ -or-
+
+ <paramref name="size" /> is greater than the length of <paramref name="buffer" /> minus the value of the <paramref name="offset" /> parameter.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>An <see cref="T:System.IAsyncResult" /> that references the asynchronous send.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.BeginSend(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.Sockets.SocketError@,System.AsyncCallback,System.Object)">
       <summary>Sends data asynchronously to a connected <see cref="T:System.Net.Sockets.Socket" />.</summary>
@@ -1233,19 +1399,25 @@ The accepted socket is bound.</exception>
       <param name="errorCode">A <see cref="T:System.Net.Sockets.SocketError" /> object that stores the socket error.</param>
       <param name="callback">The <see cref="T:System.AsyncCallback" /> delegate.</param>
       <param name="state">An object that contains state information for this request.</param>
-      <returns>An <see cref="T:System.IAsyncResult" /> that references the asynchronous send.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="buffer" /> is <see langword="null" />.</exception>
-      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket. See remarks section below.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">.NET Framework and .NET 5 and earlier only: An error occurred when attempting to access the socket. See remarks section below.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
         <paramref name="offset" /> is less than 0.
--or-
-<paramref name="offset" /> is less than the length of <paramref name="buffer" />.
--or-
-<paramref name="size" /> is less than 0.
--or-
-<paramref name="size" /> is greater than the length of <paramref name="buffer" /> minus the value of the <paramref name="offset" /> parameter.</exception>
+
+ -or-
+
+ <paramref name="offset" /> is less than the length of <paramref name="buffer" />.
+
+ -or-
+
+ <paramref name="size" /> is less than 0.
+
+ -or-
+
+ <paramref name="size" /> is greater than the length of <paramref name="buffer" /> minus the value of the <paramref name="offset" /> parameter.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>An <see cref="T:System.IAsyncResult" /> that references the asynchronous send.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.BeginSend(System.Collections.Generic.IList{System.ArraySegment{System.Byte}},System.Net.Sockets.SocketFlags,System.AsyncCallback,System.Object)">
       <summary>Sends data asynchronously to a connected <see cref="T:System.Net.Sockets.Socket" />.</summary>
@@ -1253,13 +1425,13 @@ The accepted socket is bound.</exception>
       <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
       <param name="callback">The <see cref="T:System.AsyncCallback" /> delegate.</param>
       <param name="state">An object that contains state information for this request.</param>
-      <returns>An <see cref="T:System.IAsyncResult" /> that references the asynchronous send.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="buffers" /> is <see langword="null" />.</exception>
       <exception cref="T:System.ArgumentException">
         <paramref name="buffers" /> is empty.</exception>
-      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket. See remarks section below.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">.NET Framework and .NET 5 and earlier only: An error occurred when attempting to access the socket. See remarks section below.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>An <see cref="T:System.IAsyncResult" /> that references the asynchronous send.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.BeginSend(System.Collections.Generic.IList{System.ArraySegment{System.Byte}},System.Net.Sockets.SocketFlags,System.Net.Sockets.SocketError@,System.AsyncCallback,System.Object)">
       <summary>Sends data asynchronously to a connected <see cref="T:System.Net.Sockets.Socket" />.</summary>
@@ -1268,40 +1440,42 @@ The accepted socket is bound.</exception>
       <param name="errorCode">A <see cref="T:System.Net.Sockets.SocketError" /> object that stores the socket error.</param>
       <param name="callback">The <see cref="T:System.AsyncCallback" /> delegate.</param>
       <param name="state">An object that contains state information for this request.</param>
-      <returns>An <see cref="T:System.IAsyncResult" /> that references the asynchronous send.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="buffers" /> is <see langword="null" />.</exception>
       <exception cref="T:System.ArgumentException">
         <paramref name="buffers" /> is empty.</exception>
-      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket. See remarks section below.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">.NET Framework and .NET 5 and earlier only: An error occurred when attempting to access the socket. See remarks section below.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>An <see cref="T:System.IAsyncResult" /> that references the asynchronous send.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.BeginSendFile(System.String,System.AsyncCallback,System.Object)">
       <summary>Sends the file <paramref name="fileName" /> to a connected <see cref="T:System.Net.Sockets.Socket" /> object using the <see cref="F:System.Net.Sockets.TransmitFileOptions.UseDefaultWorkerThread" /> flag.</summary>
       <param name="fileName">A string that contains the path and name of the file to send. This parameter can be <see langword="null" />.</param>
       <param name="callback">The <see cref="T:System.AsyncCallback" /> delegate.</param>
       <param name="state">An object that contains state information for this request.</param>
-      <returns>An <see cref="T:System.IAsyncResult" /> object that represents the asynchronous send.</returns>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> object has been closed.</exception>
       <exception cref="T:System.NotSupportedException">The socket is not connected to a remote host.</exception>
       <exception cref="T:System.IO.FileNotFoundException">The file <paramref name="fileName" /> was not found.</exception>
-      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket. See remarks section below.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">.NET Framework and .NET 5 and earlier only: An error occurred when attempting to access the socket. See remarks section below.</exception>
+      <returns>An <see cref="T:System.IAsyncResult" /> object that represents the asynchronous send.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.BeginSendFile(System.String,System.Byte[],System.Byte[],System.Net.Sockets.TransmitFileOptions,System.AsyncCallback,System.Object)">
       <summary>Sends a file and buffers of data asynchronously to a connected <see cref="T:System.Net.Sockets.Socket" /> object.</summary>
       <param name="fileName">A string that contains the path and name of the file to be sent. This parameter can be <see langword="null" />.</param>
-      <param name="preBuffer">A <see cref="T:System.Byte" /> array that contains data to be sent before the file is sent. This parameter can be <see langword="null" />.</param>
-      <param name="postBuffer">A <see cref="T:System.Byte" /> array that contains data to be sent after the file is sent. This parameter can be <see langword="null" />.</param>
-      <param name="flags">A bitwise combination of <see cref="T:System.Net.Sockets.TransmitFileOptions" /> values.</param>
+      <param name="preBuffer">The data to be sent before the file is sent. This parameter can be <see langword="null" />.</param>
+      <param name="postBuffer">The data to be sent after the file is sent. This parameter can be <see langword="null" />.</param>
+      <param name="flags">A bitwise combination of the enumeration values.</param>
       <param name="callback">An <see cref="T:System.AsyncCallback" /> delegate to be invoked when this operation completes. This parameter can be <see langword="null" />.</param>
       <param name="state">A user-defined object that contains state information for this request. This parameter can be <see langword="null" />.</param>
-      <returns>An <see cref="T:System.IAsyncResult" /> object that represents the asynchronous operation.</returns>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> object has been closed.</exception>
-      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket. See remarks section below.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">.NET Framework and .NET 5 and earlier only: An error occurred when attempting to access the socket. See remarks section below.</exception>
       <exception cref="T:System.NotSupportedException">The operating system is not Windows NT or later.
+
 -or-
-The socket is not connected to a remote host.</exception>
+
+ The socket is not connected to a remote host.</exception>
       <exception cref="T:System.IO.FileNotFoundException">The file <paramref name="fileName" /> was not found.</exception>
+      <returns>An <see cref="T:System.IAsyncResult" /> object that represents the asynchronous operation.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.BeginSendTo(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.AsyncCallback,System.Object)">
       <summary>Sends data asynchronously to a specific remote host.</summary>
@@ -1312,22 +1486,30 @@ The socket is not connected to a remote host.</exception>
       <param name="remoteEP">An <see cref="T:System.Net.EndPoint" /> that represents the remote device.</param>
       <param name="callback">The <see cref="T:System.AsyncCallback" /> delegate.</param>
       <param name="state">An object that contains state information for this request.</param>
-      <returns>An <see cref="T:System.IAsyncResult" /> that references the asynchronous send.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="buffer" /> is <see langword="null" />.
--or-
-<paramref name="remoteEP" /> is <see langword="null" />.</exception>
-      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+
+ -or-
+
+ <paramref name="remoteEP" /> is <see langword="null" />.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">.NET Framework and .NET 5 and earlier only: An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
         <paramref name="offset" /> is less than 0.
--or-
-<paramref name="offset" /> is greater than the length of <paramref name="buffer" />.
--or-
-<paramref name="size" /> is less than 0.
--or-
-<paramref name="size" /> is greater than the length of <paramref name="buffer" /> minus the value of the <paramref name="offset" /> parameter.</exception>
+
+ -or-
+
+ <paramref name="offset" /> is greater than the length of <paramref name="buffer" />.
+
+ -or-
+
+ <paramref name="size" /> is less than 0.
+
+ -or-
+
+ <paramref name="size" /> is greater than the length of <paramref name="buffer" /> minus the value of the <paramref name="offset" /> parameter.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
       <exception cref="T:System.Security.SecurityException">A caller higher in the call stack does not have permission for the requested operation.</exception>
+      <returns>An <see cref="T:System.IAsyncResult" /> that references the asynchronous send.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.Bind(System.Net.EndPoint)">
       <summary>Associates a <see cref="T:System.Net.Sockets.Socket" /> with a local endpoint.</summary>
@@ -1338,13 +1520,6 @@ The socket is not connected to a remote host.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
       <exception cref="T:System.Security.SecurityException">A caller higher in the call stack does not have permission for the requested operation.</exception>
     </member>
-    <member name="P:System.Net.Sockets.Socket.Blocking">
-      <summary>Gets or sets a value that indicates whether the <see cref="T:System.Net.Sockets.Socket" /> is in blocking mode.</summary>
-      <returns>
-        <see langword="true" /> if the <see cref="T:System.Net.Sockets.Socket" /> will block; otherwise, <see langword="false" />. The default is <see langword="true" />.</returns>
-      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
-      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
-    </member>
     <member name="M:System.Net.Sockets.Socket.CancelConnectAsync(System.Net.Sockets.SocketAsyncEventArgs)">
       <summary>Cancels an asynchronous request for a remote host connection.</summary>
       <param name="e">The <see cref="T:System.Net.Sockets.SocketAsyncEventArgs" /> object used to request the connection to the remote host by calling one of the <see cref="M:System.Net.Sockets.Socket.ConnectAsync(System.Net.Sockets.SocketType,System.Net.Sockets.ProtocolType,System.Net.Sockets.SocketAsyncEventArgs)" /> methods.</param>
@@ -1392,7 +1567,7 @@ The socket is not connected to a remote host.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">The port number is not valid.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
-      <exception cref="T:System.NotSupportedException">This method is valid for sockets in the <see cref="F:System.Net.Sockets.AddressFamily.InterNetwork" /> or <see cref="F:System.Net.Sockets.AddressFamily.InterNetworkV6" /> families.</exception>
+      <exception cref="T:System.NotSupportedException">The socket is not in the <see cref="F:System.Net.Sockets.AddressFamily.InterNetwork" /> or <see cref="F:System.Net.Sockets.AddressFamily.InterNetworkV6" /> families.</exception>
       <exception cref="T:System.ArgumentException">The length of <paramref name="address" /> is zero.</exception>
       <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Net.Sockets.Socket" /> has been placed in a listening state by calling <see cref="M:System.Net.Sockets.Socket.Listen(System.Int32)" />.</exception>
     </member>
@@ -1405,15 +1580,49 @@ The socket is not connected to a remote host.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">The port number is not valid.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
-      <exception cref="T:System.NotSupportedException">This method is valid for sockets in the <see cref="F:System.Net.Sockets.AddressFamily.InterNetwork" /> or <see cref="F:System.Net.Sockets.AddressFamily.InterNetworkV6" /> families.</exception>
+      <exception cref="T:System.NotSupportedException">The socket is not in the <see cref="F:System.Net.Sockets.AddressFamily.InterNetwork" /> or <see cref="F:System.Net.Sockets.AddressFamily.InterNetworkV6" /> families.</exception>
       <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Net.Sockets.Socket" /> has been placed in a listening state by calling <see cref="M:System.Net.Sockets.Socket.Listen(System.Int32)" />.</exception>
     </member>
+    <member name="M:System.Net.Sockets.Socket.ConnectAsync(System.Net.EndPoint)">
+      <summary>Establishes a connection to a remote host.</summary>
+      <param name="remoteEP">The endpoint to connect to.</param>
+      <returns>An asynchronous task that completes when the connection is established.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.Socket.ConnectAsync(System.Net.EndPoint,System.Threading.CancellationToken)">
+      <summary>Establishes a connection to a remote host.</summary>
+      <param name="remoteEP">The endpoint to connect to.</param>
+      <param name="cancellationToken">A cancellation token that can be used to cancel the asynchronous operation.</param>
+      <returns>An asynchronous task that completes when the connection is established.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.Socket.ConnectAsync(System.Net.IPAddress,System.Int32)">
+      <summary>Establishes a connection to a remote host.</summary>
+      <param name="address">The IPAddress of the remote host to connect to.</param>
+      <param name="port">The port on the remote host to connect to.</param>
+      <returns>An asynchronous task that completes when the connection is established.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.Socket.ConnectAsync(System.Net.IPAddress,System.Int32,System.Threading.CancellationToken)">
+      <summary>Establishes a connection to a remote host.</summary>
+      <param name="address">The IPAddress of the remote host to connect to.</param>
+      <param name="port">The port on the remote host to connect to.</param>
+      <param name="cancellationToken">A cancellation token that can be used to cancel the asynchronous operation.</param>
+      <returns>An asynchronous task that completes when the connection is established.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.Socket.ConnectAsync(System.Net.IPAddress[],System.Int32)">
+      <summary>Establishes a connection to a remote host.</summary>
+      <param name="addresses">A list of IPAddresses for the remote host that will be used to attempt to connect to the remote host.</param>
+      <param name="port">The port on the remote host to connect to.</param>
+      <returns>An asynchronous task that completes when the connection is established.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.Socket.ConnectAsync(System.Net.IPAddress[],System.Int32,System.Threading.CancellationToken)">
+      <summary>Establishes a connection to a remote host.</summary>
+      <param name="addresses">A list of IPAddresses for the remote host that will be used to attempt to connect to the remote host.</param>
+      <param name="port">The port on the remote host to connect to.</param>
+      <param name="cancellationToken">A cancellation token that can be used to cancel the asynchronous operation.</param>
+      <returns>An asynchronous task that completes when the connection is established.</returns>
+    </member>
     <member name="M:System.Net.Sockets.Socket.ConnectAsync(System.Net.Sockets.SocketAsyncEventArgs)">
       <summary>Begins an asynchronous request for a connection to a remote host.</summary>
       <param name="e">The <see cref="T:System.Net.Sockets.SocketAsyncEventArgs" /> object to use for this asynchronous socket operation.</param>
-      <returns>
-        <see langword="true" /> if the I/O operation is pending. The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will be raised upon completion of the operation.
-<see langword="false" /> if the I/O operation completed synchronously. In this case, The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will not be raised and the <paramref name="e" /> object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation.</returns>
       <exception cref="T:System.ArgumentException">An argument is not valid. This exception occurs if multiple buffers are specified, the <see cref="P:System.Net.Sockets.SocketAsyncEventArgs.BufferList" /> property is not null.</exception>
       <exception cref="T:System.ArgumentNullException">The <paramref name="e" /> parameter cannot be null and the <see cref="P:System.Net.Sockets.SocketAsyncEventArgs.RemoteEndPoint" /> cannot be null.</exception>
       <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Net.Sockets.Socket" /> is listening or a socket operation was already in progress using the <see cref="T:System.Net.Sockets.SocketAsyncEventArgs" /> object specified in the <paramref name="e" /> parameter.</exception>
@@ -1421,15 +1630,16 @@ The socket is not connected to a remote host.</exception>
       <exception cref="T:System.NotSupportedException">Windows XP or later is required for this method. This exception also occurs if the local endpoint and the <see cref="P:System.Net.Sockets.SocketAsyncEventArgs.RemoteEndPoint" /> are not the same address family.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
       <exception cref="T:System.Security.SecurityException">A caller higher in the call stack does not have permission for the requested operation.</exception>
+      <returns>
+        <see langword="true" /> if the I/O operation is pending. The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will be raised upon completion of the operation.
+
+ <see langword="false" /> if the I/O operation completed synchronously. In this case, The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will not be raised and the <paramref name="e" /> object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.ConnectAsync(System.Net.Sockets.SocketType,System.Net.Sockets.ProtocolType,System.Net.Sockets.SocketAsyncEventArgs)">
       <summary>Begins an asynchronous request for a connection to a remote host.</summary>
       <param name="socketType">One of the <see cref="T:System.Net.Sockets.SocketType" /> values.</param>
       <param name="protocolType">One of the <see cref="T:System.Net.Sockets.ProtocolType" /> values.</param>
       <param name="e">The <see cref="T:System.Net.Sockets.SocketAsyncEventArgs" /> object to use for this asynchronous socket operation.</param>
-      <returns>
-        <see langword="true" /> if the I/O operation is pending. The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will be raised upon completion of the operation.
-<see langword="false" /> if the I/O operation completed synchronously. In this case, The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will not be raised and the <paramref name="e" /> object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation.</returns>
       <exception cref="T:System.ArgumentException">An argument is not valid. This exception occurs if multiple buffers are specified, the <see cref="P:System.Net.Sockets.SocketAsyncEventArgs.BufferList" /> property is not null.</exception>
       <exception cref="T:System.ArgumentNullException">The <paramref name="e" /> parameter cannot be null and the <see cref="P:System.Net.Sockets.SocketAsyncEventArgs.RemoteEndPoint" /> cannot be null.</exception>
       <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Net.Sockets.Socket" /> is listening or a socket operation was already in progress using the <see cref="T:System.Net.Sockets.SocketAsyncEventArgs" /> object specified in the <paramref name="e" /> parameter.</exception>
@@ -1437,31 +1647,49 @@ The socket is not connected to a remote host.</exception>
       <exception cref="T:System.NotSupportedException">Windows XP or later is required for this method. This exception also occurs if the local endpoint and the <see cref="P:System.Net.Sockets.SocketAsyncEventArgs.RemoteEndPoint" /> are not the same address family.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
       <exception cref="T:System.Security.SecurityException">A caller higher in the call stack does not have permission for the requested operation.</exception>
-    </member>
-    <member name="P:System.Net.Sockets.Socket.Connected">
-      <summary>Gets a value that indicates whether a <see cref="T:System.Net.Sockets.Socket" /> is connected to a remote host as of the last <see cref="Overload:System.Net.Sockets.Socket.Send" /> or <see cref="Overload:System.Net.Sockets.Socket.Receive" /> operation.</summary>
       <returns>
-        <see langword="true" /> if the <see cref="T:System.Net.Sockets.Socket" /> was connected to a remote resource as of the most recent operation; otherwise, <see langword="false" />.</returns>
+        <see langword="true" /> if the I/O operation is pending. The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will be raised upon completion of the operation.
+
+ <see langword="false" /> if the I/O operation completed synchronously. In this case, The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will not be raised and the <paramref name="e" /> object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.Socket.ConnectAsync(System.String,System.Int32)">
+      <summary>Establishes a connection to a remote host.</summary>
+      <param name="host">The hostname of the remote host to connect to.</param>
+      <param name="port">The port on the remote host to connect to.</param>
+      <returns>An asynchronous task that completes when the connection is established.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.Socket.ConnectAsync(System.String,System.Int32,System.Threading.CancellationToken)">
+      <summary>Establishes a connection to a remote host.</summary>
+      <param name="host">The hostname of the remote host to connect to.</param>
+      <param name="port">The port on the remote host to connect to.</param>
+      <param name="cancellationToken">A cancellation token that can be used to cancel the asynchronous operation.</param>
+      <returns>An asynchronous task that completes when the connection is established.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.Disconnect(System.Boolean)">
       <summary>Closes the socket connection and allows reuse of the socket.</summary>
       <param name="reuseSocket">
         <see langword="true" /> if this socket can be reused after the current connection is closed; otherwise, <see langword="false" />.</param>
-      <exception cref="T:System.PlatformNotSupportedException">This method requires Windows 2000 or earlier, or the exception will be thrown.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> object has been closed.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
     </member>
+    <member name="M:System.Net.Sockets.Socket.DisconnectAsync(System.Boolean,System.Threading.CancellationToken)">
+      <summary>Disconnects a connected socket from the remote host.</summary>
+      <param name="reuseSocket">Indicates whether the socket should be available for reuse after disconnect.</param>
+      <param name="cancellationToken">A cancellation token that can be used to cancel the asynchronous operation.</param>
+      <returns>An asynchronous task that completes when the socket is disconnected.</returns>
+    </member>
     <member name="M:System.Net.Sockets.Socket.DisconnectAsync(System.Net.Sockets.SocketAsyncEventArgs)">
       <summary>Begins an asynchronous request to disconnect from a remote endpoint.</summary>
       <param name="e">The <see cref="T:System.Net.Sockets.SocketAsyncEventArgs" /> object to use for this asynchronous socket operation.</param>
-      <returns>
-        <see langword="true" /> if the I/O operation is pending. The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will be raised upon completion of the operation.
-<see langword="false" /> if the I/O operation completed synchronously. In this case, The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will not be raised and the <paramref name="e" /> object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation.</returns>
       <exception cref="T:System.ArgumentNullException">The <paramref name="e" /> parameter cannot be null.</exception>
       <exception cref="T:System.InvalidOperationException">A socket operation was already in progress using the <see cref="T:System.Net.Sockets.SocketAsyncEventArgs" /> object specified in the <paramref name="e" /> parameter.</exception>
       <exception cref="T:System.NotSupportedException">Windows XP or later is required for this method.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <returns>
+        <see langword="true" /> if the I/O operation is pending. The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will be raised upon completion of the operation.
+
+ <see langword="false" /> if the I/O operation completed synchronously. In this case, The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will not be raised and the <paramref name="e" /> object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.Dispose">
       <summary>Releases all resources used by the current instance of the <see cref="T:System.Net.Sockets.Socket" /> class.</summary>
@@ -1471,40 +1699,22 @@ The socket is not connected to a remote host.</exception>
       <param name="disposing">
         <see langword="true" /> to release both managed and unmanaged resources; <see langword="false" /> to releases only unmanaged resources.</param>
     </member>
-    <member name="P:System.Net.Sockets.Socket.DontFragment">
-      <summary>Gets or sets a <see cref="T:System.Boolean" /> value that specifies whether the <see cref="T:System.Net.Sockets.Socket" /> allows Internet Protocol (IP) datagrams to be fragmented.</summary>
-      <returns>
-        <see langword="true" /> if the <see cref="T:System.Net.Sockets.Socket" /> allows datagram fragmentation; otherwise, <see langword="false" />. The default is <see langword="true" />.</returns>
-      <exception cref="T:System.NotSupportedException">This property can be set only for sockets in the <see cref="F:System.Net.Sockets.AddressFamily.InterNetwork" /> or <see cref="F:System.Net.Sockets.AddressFamily.InterNetworkV6" /> families.</exception>
-      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
-      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
-    </member>
-    <member name="P:System.Net.Sockets.Socket.DualMode">
-      <summary>Gets or sets a <see cref="T:System.Boolean" /> value that specifies whether the <see cref="T:System.Net.Sockets.Socket" /> is a dual-mode socket used for both IPv4 and IPv6.</summary>
-      <returns>
-        <see langword="true" /> if the <see cref="T:System.Net.Sockets.Socket" /> is a  dual-mode socket; otherwise, <see langword="false" />. The default is <see langword="false" />.</returns>
-    </member>
     <member name="M:System.Net.Sockets.Socket.DuplicateAndClose(System.Int32)">
       <summary>Duplicates the socket reference for the target process, and closes the socket for this process.</summary>
       <param name="targetProcessId">The ID of the target process where a duplicate of the socket reference is created.</param>
-      <returns>The socket reference to be passed to the target process.</returns>
+      <exception cref="T:System.PlatformNotSupportedException">.NET Core on any OS and .NET 5+ on Unix-based OS only: The current platform is not supported.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">
         <paramref name="targetProcessID" /> is not a valid process id.
+
 -or-
+
 Duplication of the socket reference failed.</exception>
-    </member>
-    <member name="P:System.Net.Sockets.Socket.EnableBroadcast">
-      <summary>Gets or sets a <see cref="T:System.Boolean" /> value that specifies whether the <see cref="T:System.Net.Sockets.Socket" /> can send or receive broadcast packets.</summary>
-      <returns>
-        <see langword="true" /> if the <see cref="T:System.Net.Sockets.Socket" /> allows broadcast packets; otherwise, <see langword="false" />. The default is <see langword="false" />.</returns>
-      <exception cref="T:System.Net.Sockets.SocketException">This option is valid for a datagram socket only.</exception>
-      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>The socket reference to be passed to the target process.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.EndAccept(System.Byte[]@,System.IAsyncResult)">
       <summary>Asynchronously accepts an incoming connection attempt and creates a new <see cref="T:System.Net.Sockets.Socket" /> object to handle remote host communication. This method returns a buffer that contains the initial data transferred.</summary>
       <param name="buffer">An array of type <see cref="T:System.Byte" /> that contains the bytes transferred.</param>
       <param name="asyncResult">An <see cref="T:System.IAsyncResult" /> object that stores state information for this asynchronous operation as well as any user defined data.</param>
-      <returns>A <see cref="T:System.Net.Sockets.Socket" /> object to handle communication with the remote host.</returns>
       <exception cref="T:System.NotSupportedException">Windows NT is required for this method.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> object has been closed.</exception>
       <exception cref="T:System.ArgumentNullException">
@@ -1514,13 +1724,13 @@ Duplication of the socket reference failed.</exception>
       <exception cref="T:System.InvalidOperationException">
         <see cref="M:System.Net.Sockets.Socket.EndAccept(System.IAsyncResult)" /> method was previously called.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the <see cref="T:System.Net.Sockets.Socket" /></exception>
+      <returns>A <see cref="T:System.Net.Sockets.Socket" /> object to handle communication with the remote host.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.EndAccept(System.Byte[]@,System.Int32@,System.IAsyncResult)">
       <summary>Asynchronously accepts an incoming connection attempt and creates a new <see cref="T:System.Net.Sockets.Socket" /> object to handle remote host communication. This method returns a buffer that contains the initial data and the number of bytes transferred.</summary>
       <param name="buffer">An array of type <see cref="T:System.Byte" /> that contains the bytes transferred.</param>
       <param name="bytesTransferred">The number of bytes transferred.</param>
       <param name="asyncResult">An <see cref="T:System.IAsyncResult" /> object that stores state information for this asynchronous operation as well as any user defined data.</param>
-      <returns>A <see cref="T:System.Net.Sockets.Socket" /> object to handle communication with the remote host.</returns>
       <exception cref="T:System.NotSupportedException">Windows NT is required for this method.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> object has been closed.</exception>
       <exception cref="T:System.ArgumentNullException">
@@ -1530,11 +1740,11 @@ Duplication of the socket reference failed.</exception>
       <exception cref="T:System.InvalidOperationException">
         <see cref="M:System.Net.Sockets.Socket.EndAccept(System.IAsyncResult)" /> method was previously called.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the <see cref="T:System.Net.Sockets.Socket" />.</exception>
+      <returns>A <see cref="T:System.Net.Sockets.Socket" /> object to handle communication with the remote host.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.EndAccept(System.IAsyncResult)">
       <summary>Asynchronously accepts an incoming connection attempt and creates a new <see cref="T:System.Net.Sockets.Socket" /> to handle remote host communication.</summary>
       <param name="asyncResult">An <see cref="T:System.IAsyncResult" /> that stores state information for this asynchronous operation as well as any user defined data.</param>
-      <returns>A <see cref="T:System.Net.Sockets.Socket" /> to handle communication with the remote host.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="asyncResult" /> is <see langword="null" />.</exception>
       <exception cref="T:System.ArgumentException">
@@ -1544,6 +1754,7 @@ Duplication of the socket reference failed.</exception>
       <exception cref="T:System.InvalidOperationException">
         <see cref="M:System.Net.Sockets.Socket.EndAccept(System.IAsyncResult)" /> method was previously called.</exception>
       <exception cref="T:System.NotSupportedException">Windows NT is required for this method.</exception>
+      <returns>A <see cref="T:System.Net.Sockets.Socket" /> to handle communication with the remote host.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.EndConnect(System.IAsyncResult)">
       <summary>Ends a pending asynchronous connection request.</summary>
@@ -1560,7 +1771,6 @@ Duplication of the socket reference failed.</exception>
     <member name="M:System.Net.Sockets.Socket.EndDisconnect(System.IAsyncResult)">
       <summary>Ends a pending asynchronous disconnect request.</summary>
       <param name="asyncResult">An <see cref="T:System.IAsyncResult" /> object that stores state information and any user-defined data for this asynchronous operation.</param>
-      <exception cref="T:System.NotSupportedException">The operating system is Windows 2000 or earlier, and this method requires Windows XP.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> object has been closed.</exception>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="asyncResult" /> is <see langword="null" />.</exception>
@@ -1574,7 +1784,6 @@ Duplication of the socket reference failed.</exception>
     <member name="M:System.Net.Sockets.Socket.EndReceive(System.IAsyncResult)">
       <summary>Ends a pending asynchronous read.</summary>
       <param name="asyncResult">An <see cref="T:System.IAsyncResult" /> that stores state information and any user defined data for this asynchronous operation.</param>
-      <returns>The number of bytes received.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="asyncResult" /> is <see langword="null" />.</exception>
       <exception cref="T:System.ArgumentException">
@@ -1583,12 +1792,12 @@ Duplication of the socket reference failed.</exception>
         <see cref="M:System.Net.Sockets.Socket.EndReceive(System.IAsyncResult)" /> was previously called for the asynchronous read.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>The number of bytes received.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.EndReceive(System.IAsyncResult,System.Net.Sockets.SocketError@)">
       <summary>Ends a pending asynchronous read.</summary>
       <param name="asyncResult">An <see cref="T:System.IAsyncResult" /> that stores state information and any user defined data for this asynchronous operation.</param>
       <param name="errorCode">A <see cref="T:System.Net.Sockets.SocketError" /> object that stores the socket error.</param>
-      <returns>The number of bytes received.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="asyncResult" /> is <see langword="null" />.</exception>
       <exception cref="T:System.ArgumentException">
@@ -1597,12 +1806,12 @@ Duplication of the socket reference failed.</exception>
         <see cref="M:System.Net.Sockets.Socket.EndReceive(System.IAsyncResult)" /> was previously called for the asynchronous read.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>The number of bytes received.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.EndReceiveFrom(System.IAsyncResult,System.Net.EndPoint@)">
       <summary>Ends a pending asynchronous read from a specific endpoint.</summary>
       <param name="asyncResult">An <see cref="T:System.IAsyncResult" /> that stores state information and any user defined data for this asynchronous operation.</param>
       <param name="endPoint">The source <see cref="T:System.Net.EndPoint" />.</param>
-      <returns>If successful, the number of bytes received. If unsuccessful, returns 0.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="asyncResult" /> is <see langword="null" />.</exception>
       <exception cref="T:System.ArgumentException">
@@ -1611,6 +1820,7 @@ Duplication of the socket reference failed.</exception>
         <see cref="M:System.Net.Sockets.Socket.EndReceiveFrom(System.IAsyncResult,System.Net.EndPoint@)" /> was previously called for the asynchronous read.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>If successful, the number of bytes received. If unsuccessful, returns 0.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.EndReceiveMessageFrom(System.IAsyncResult,System.Net.Sockets.SocketFlags@,System.Net.EndPoint@,System.Net.Sockets.IPPacketInformation@)">
       <summary>Ends a pending asynchronous read from a specific endpoint. This method also reveals more information about the packet than <see cref="M:System.Net.Sockets.Socket.EndReceiveFrom(System.IAsyncResult,System.Net.EndPoint@)" />.</summary>
@@ -1618,22 +1828,23 @@ Duplication of the socket reference failed.</exception>
       <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values for the received packet.</param>
       <param name="endPoint">The source <see cref="T:System.Net.EndPoint" />.</param>
       <param name="ipPacketInformation">The <see cref="T:System.Net.IPAddress" /> and interface of the received packet.</param>
-      <returns>If successful, the number of bytes received. If unsuccessful, returns 0.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="asyncResult" /> is <see langword="null" />
--or-
-<paramref name="endPoint" /> is <see langword="null" />.</exception>
+
+ -or-
+
+ <paramref name="endPoint" /> is <see langword="null" />.</exception>
       <exception cref="T:System.ArgumentException">
         <paramref name="asyncResult" /> was not returned by a call to the <see cref="M:System.Net.Sockets.Socket.BeginReceiveMessageFrom(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint@,System.AsyncCallback,System.Object)" /> method.</exception>
       <exception cref="T:System.InvalidOperationException">
         <see cref="M:System.Net.Sockets.Socket.EndReceiveMessageFrom(System.IAsyncResult,System.Net.Sockets.SocketFlags@,System.Net.EndPoint@,System.Net.Sockets.IPPacketInformation@)" /> was previously called for the asynchronous read.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>If successful, the number of bytes received. If unsuccessful, returns 0.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.EndSend(System.IAsyncResult)">
       <summary>Ends a pending asynchronous send.</summary>
       <param name="asyncResult">An <see cref="T:System.IAsyncResult" /> that stores state information for this asynchronous operation.</param>
-      <returns>If successful, the number of bytes sent to the <see cref="T:System.Net.Sockets.Socket" />; otherwise, an invalid <see cref="T:System.Net.Sockets.Socket" /> error.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="asyncResult" /> is <see langword="null" />.</exception>
       <exception cref="T:System.ArgumentException">
@@ -1642,12 +1853,12 @@ Duplication of the socket reference failed.</exception>
         <see cref="M:System.Net.Sockets.Socket.EndSend(System.IAsyncResult)" /> was previously called for the asynchronous send.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>If successful, the number of bytes sent to the <see cref="T:System.Net.Sockets.Socket" />; otherwise, an invalid <see cref="T:System.Net.Sockets.Socket" /> error.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.EndSend(System.IAsyncResult,System.Net.Sockets.SocketError@)">
       <summary>Ends a pending asynchronous send.</summary>
       <param name="asyncResult">An <see cref="T:System.IAsyncResult" /> that stores state information for this asynchronous operation.</param>
       <param name="errorCode">A <see cref="T:System.Net.Sockets.SocketError" /> object that stores the socket error.</param>
-      <returns>If successful, the number of bytes sent to the <see cref="T:System.Net.Sockets.Socket" />; otherwise, an invalid <see cref="T:System.Net.Sockets.Socket" /> error.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="asyncResult" /> is <see langword="null" />.</exception>
       <exception cref="T:System.ArgumentException">
@@ -1656,6 +1867,7 @@ Duplication of the socket reference failed.</exception>
         <see cref="M:System.Net.Sockets.Socket.EndSend(System.IAsyncResult)" /> was previously called for the asynchronous send.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>If successful, the number of bytes sent to the <see cref="T:System.Net.Sockets.Socket" />; otherwise, an invalid <see cref="T:System.Net.Sockets.Socket" /> error.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.EndSendFile(System.IAsyncResult)">
       <summary>Ends a pending asynchronous send of a file.</summary>
@@ -1673,7 +1885,6 @@ Duplication of the socket reference failed.</exception>
     <member name="M:System.Net.Sockets.Socket.EndSendTo(System.IAsyncResult)">
       <summary>Ends a pending asynchronous send to a specific location.</summary>
       <param name="asyncResult">An <see cref="T:System.IAsyncResult" /> that stores state information and any user defined data for this asynchronous operation.</param>
-      <returns>If successful, the number of bytes sent; otherwise, an invalid <see cref="T:System.Net.Sockets.Socket" /> error.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="asyncResult" /> is <see langword="null" />.</exception>
       <exception cref="T:System.ArgumentException">
@@ -1682,28 +1893,31 @@ Duplication of the socket reference failed.</exception>
         <see cref="M:System.Net.Sockets.Socket.EndSendTo(System.IAsyncResult)" /> was previously called for the asynchronous send.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
-    </member>
-    <member name="P:System.Net.Sockets.Socket.ExclusiveAddressUse">
-      <summary>Gets or sets a <see cref="T:System.Boolean" /> value that specifies whether the <see cref="T:System.Net.Sockets.Socket" /> allows only one process to bind to a port.</summary>
-      <returns>
-        <see langword="true" /> if the <see cref="T:System.Net.Sockets.Socket" /> allows only one socket to bind to a specific port; otherwise, <see langword="false" />. The default is <see langword="true" /> for Windows Server 2003 and Windows XP Service Pack 2, and <see langword="false" /> for all other versions.</returns>
-      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
-      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
-      <exception cref="T:System.InvalidOperationException">
-        <see cref="M:System.Net.Sockets.Socket.Bind(System.Net.EndPoint)" /> has been called for this <see cref="T:System.Net.Sockets.Socket" />.</exception>
+      <returns>If successful, the number of bytes sent; otherwise, an invalid <see cref="T:System.Net.Sockets.Socket" /> error.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.Finalize">
       <summary>Frees resources used by the <see cref="T:System.Net.Sockets.Socket" /> class.</summary>
     </member>
+    <member name="M:System.Net.Sockets.Socket.GetRawSocketOption(System.Int32,System.Int32,System.Span{System.Byte})">
+      <summary>Gets a socket option value using platform-specific level and name identifiers.</summary>
+      <param name="optionLevel">The platform-defined option level.</param>
+      <param name="optionName">The platform-defined option name.</param>
+      <param name="optionValue">The span into which the retrieved option value should be stored.</param>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <returns>The number of bytes written into <paramref name="optionValue" /> for a successfully retrieved value.</returns>
+    </member>
     <member name="M:System.Net.Sockets.Socket.GetSocketOption(System.Net.Sockets.SocketOptionLevel,System.Net.Sockets.SocketOptionName)">
       <summary>Returns the value of a specified <see cref="T:System.Net.Sockets.Socket" /> option, represented as an object.</summary>
       <param name="optionLevel">One of the <see cref="T:System.Net.Sockets.SocketOptionLevel" /> values.</param>
       <param name="optionName">One of the <see cref="T:System.Net.Sockets.SocketOptionName" /> values.</param>
-      <returns>An object that represents the value of the option. When the <paramref name="optionName" /> parameter is set to <see cref="F:System.Net.Sockets.SocketOptionName.Linger" /> the return value is an instance of the <see cref="T:System.Net.Sockets.LingerOption" /> class. When <paramref name="optionName" /> is set to <see cref="F:System.Net.Sockets.SocketOptionName.AddMembership" /> or <see cref="F:System.Net.Sockets.SocketOptionName.DropMembership" />, the return value is an instance of the <see cref="T:System.Net.Sockets.MulticastOption" /> class. When <paramref name="optionName" /> is any other value, the return value is an integer.</returns>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.
--or-
-<paramref name="optionName" /> was set to the unsupported value <see cref="F:System.Net.Sockets.SocketOptionName.MaxConnections" />.</exception>
+
+ -or-
+
+ <paramref name="optionName" /> was set to the unsupported value <see cref="F:System.Net.Sockets.SocketOptionName.MaxConnections" />.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>An object that represents the value of the option. When the <paramref name="optionName" /> parameter is set to <see cref="F:System.Net.Sockets.SocketOptionName.Linger" /> the return value is an instance of the <see cref="T:System.Net.Sockets.LingerOption" /> class. When <paramref name="optionName" /> is set to <see cref="F:System.Net.Sockets.SocketOptionName.AddMembership" /> or <see cref="F:System.Net.Sockets.SocketOptionName.DropMembership" />, the return value is an instance of the <see cref="T:System.Net.Sockets.MulticastOption" /> class. When <paramref name="optionName" /> is any other value, the return value is an integer.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.GetSocketOption(System.Net.Sockets.SocketOptionLevel,System.Net.Sockets.SocketOptionName,System.Byte[])">
       <summary>Returns the specified <see cref="T:System.Net.Sockets.Socket" /> option setting, represented as a byte array.</summary>
@@ -1711,8 +1925,10 @@ Duplication of the socket reference failed.</exception>
       <param name="optionName">One of the <see cref="T:System.Net.Sockets.SocketOptionName" /> values.</param>
       <param name="optionValue">An array of type <see cref="T:System.Byte" /> that is to receive the option setting.</param>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.
+
 -or-
-In .NET Compact Framework applications, the Windows CE default buffer space is set to 32768 bytes. You can change the per socket buffer space by calling <see cref="Overload:System.Net.Sockets.Socket.SetSocketOption" />.</exception>
+
+ In .NET Compact Framework applications, the Windows CE default buffer space is set to 32768 bytes. You can change the per socket buffer space by calling <see cref="Overload:System.Net.Sockets.Socket.SetSocketOption" />.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
     </member>
     <member name="M:System.Net.Sockets.Socket.GetSocketOption(System.Net.Sockets.SocketOptionLevel,System.Net.Sockets.SocketOptionName,System.Int32)">
@@ -1720,47 +1936,37 @@ In .NET Compact Framework applications, the Windows CE default buffer space is s
       <param name="optionLevel">One of the <see cref="T:System.Net.Sockets.SocketOptionLevel" /> values.</param>
       <param name="optionName">One of the <see cref="T:System.Net.Sockets.SocketOptionName" /> values.</param>
       <param name="optionLength">The length, in bytes, of the expected return value.</param>
-      <returns>An array of type <see cref="T:System.Byte" /> that contains the value of the socket option.</returns>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.
+
 -or-
-In .NET Compact Framework applications, the Windows CE default buffer space is set to 32768 bytes. You can change the per socket buffer space by calling <see cref="Overload:System.Net.Sockets.Socket.SetSocketOption" />.</exception>
+
+ In .NET Compact Framework applications, the Windows CE default buffer space is set to 32768 bytes. You can change the per socket buffer space by calling <see cref="Overload:System.Net.Sockets.Socket.SetSocketOption" />.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
-    </member>
-    <member name="P:System.Net.Sockets.Socket.Handle">
-      <summary>Gets the operating system handle for the <see cref="T:System.Net.Sockets.Socket" />.</summary>
-      <returns>An <see cref="T:System.IntPtr" /> that represents the operating system handle for the <see cref="T:System.Net.Sockets.Socket" />.</returns>
+      <returns>An array of type <see cref="T:System.Byte" /> that contains the value of the socket option.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.IOControl(System.Int32,System.Byte[],System.Byte[])">
       <summary>Sets low-level operating modes for the <see cref="T:System.Net.Sockets.Socket" /> using numerical control codes.</summary>
       <param name="ioControlCode">An <see cref="T:System.Int32" /> value that specifies the control code of the operation to perform.</param>
       <param name="optionInValue">A <see cref="T:System.Byte" /> array that contains the input data required by the operation.</param>
       <param name="optionOutValue">A <see cref="T:System.Byte" /> array that contains the output data returned by the operation.</param>
-      <returns>The number of bytes in the <paramref name="optionOutValue" /> parameter.</returns>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
       <exception cref="T:System.InvalidOperationException">An attempt was made to change the blocking mode without using the <see cref="P:System.Net.Sockets.Socket.Blocking" /> property.</exception>
       <exception cref="T:System.Security.SecurityException">A caller in the call stack does not have the required permissions.</exception>
+      <returns>The number of bytes in the <paramref name="optionOutValue" /> parameter.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.IOControl(System.Net.Sockets.IOControlCode,System.Byte[],System.Byte[])">
       <summary>Sets low-level operating modes for the <see cref="T:System.Net.Sockets.Socket" /> using the <see cref="T:System.Net.Sockets.IOControlCode" /> enumeration to specify control codes.</summary>
       <param name="ioControlCode">A <see cref="T:System.Net.Sockets.IOControlCode" /> value that specifies the control code of the operation to perform.</param>
       <param name="optionInValue">An array of type <see cref="T:System.Byte" /> that contains the input data required by the operation.</param>
       <param name="optionOutValue">An array of type <see cref="T:System.Byte" /> that contains the output data returned by the operation.</param>
-      <returns>The number of bytes in the <paramref name="optionOutValue" /> parameter.</returns>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
       <exception cref="T:System.InvalidOperationException">An attempt was made to change the blocking mode without using the <see cref="P:System.Net.Sockets.Socket.Blocking" /> property.</exception>
+      <returns>The number of bytes in the <paramref name="optionOutValue" /> parameter.</returns>
     </member>
-    <member name="P:System.Net.Sockets.Socket.IsBound">
-      <summary>Gets a value that indicates whether the <see cref="T:System.Net.Sockets.Socket" /> is bound to a specific local port.</summary>
-      <returns>
-        <see langword="true" /> if the <see cref="T:System.Net.Sockets.Socket" /> is bound to a local port; otherwise, <see langword="false" />.</returns>
-    </member>
-    <member name="P:System.Net.Sockets.Socket.LingerState">
-      <summary>Gets or sets a value that specifies whether the <see cref="T:System.Net.Sockets.Socket" /> will delay closing a socket in an attempt to send all pending data.</summary>
-      <returns>A <see cref="T:System.Net.Sockets.LingerOption" /> that specifies how to linger while closing a socket.</returns>
-      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
-      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+    <member name="M:System.Net.Sockets.Socket.Listen">
+      <summary>Places a <see cref="T:System.Net.Sockets.Socket" /> in a listening state.</summary>
     </member>
     <member name="M:System.Net.Sockets.Socket.Listen(System.Int32)">
       <summary>Places a <see cref="T:System.Net.Sockets.Socket" /> in a listening state.</summary>
@@ -1768,89 +1974,48 @@ In .NET Compact Framework applications, the Windows CE default buffer space is s
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
     </member>
-    <member name="P:System.Net.Sockets.Socket.LocalEndPoint">
-      <summary>Gets the local endpoint.</summary>
-      <returns>The <see cref="T:System.Net.EndPoint" /> that the <see cref="T:System.Net.Sockets.Socket" /> is using for communications.</returns>
-      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
-      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
-    </member>
-    <member name="P:System.Net.Sockets.Socket.MulticastLoopback">
-      <summary>Gets or sets a value that specifies whether outgoing multicast packets are delivered to the sending application.</summary>
-      <returns>
-        <see langword="true" /> if the <see cref="T:System.Net.Sockets.Socket" /> receives outgoing multicast packets; otherwise, <see langword="false" />.</returns>
-      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
-      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
-    </member>
-    <member name="P:System.Net.Sockets.Socket.NoDelay">
-      <summary>Gets or sets a <see cref="T:System.Boolean" /> value that specifies whether the stream <see cref="T:System.Net.Sockets.Socket" /> is using the Nagle algorithm.</summary>
-      <returns>
-        <see langword="false" /> if the <see cref="T:System.Net.Sockets.Socket" /> uses the Nagle algorithm; otherwise, <see langword="true" />. The default is <see langword="false" />.</returns>
-      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the <see cref="T:System.Net.Sockets.Socket" />.</exception>
-      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
-    </member>
-    <member name="P:System.Net.Sockets.Socket.OSSupportsIPv4">
-      <summary>Indicates whether the underlying operating system and network adaptors support Internet Protocol version 4 (IPv4).</summary>
-      <returns>
-        <see langword="true" /> if the operating system and network adaptors support the IPv4 protocol; otherwise, <see langword="false" />.</returns>
-    </member>
-    <member name="P:System.Net.Sockets.Socket.OSSupportsIPv6">
-      <summary>Indicates whether the underlying operating system and network adaptors support Internet Protocol version 6 (IPv6).</summary>
-      <returns>
-        <see langword="true" /> if the operating system and network adaptors support the IPv6 protocol; otherwise, <see langword="false" />.</returns>
-    </member>
     <member name="M:System.Net.Sockets.Socket.Poll(System.Int32,System.Net.Sockets.SelectMode)">
       <summary>Determines the status of the <see cref="T:System.Net.Sockets.Socket" />.</summary>
       <param name="microSeconds">The time to wait for a response, in microseconds.</param>
       <param name="mode">One of the <see cref="T:System.Net.Sockets.SelectMode" /> values.</param>
-      <returns>The status of the <see cref="T:System.Net.Sockets.Socket" /> based on the polling mode value passed in the <paramref name="mode" /> parameter.
-  Mode  
-  
-  Return Value  
-  
- <see cref="F:System.Net.Sockets.SelectMode.SelectRead" /><see langword="true" /> if <see cref="M:System.Net.Sockets.Socket.Listen(System.Int32)" /> has been called and a connection is pending;  
-  
- -or-  
-  
- <see langword="true" /> if data is available for reading;  
-  
- -or-  
-  
- <see langword="true" /> if the connection has been closed, reset, or terminated;  
-  
- otherwise, returns <see langword="false" />.  
-  
- <see cref="F:System.Net.Sockets.SelectMode.SelectWrite" /><see langword="true" />, if processing a <see cref="M:System.Net.Sockets.Socket.Connect(System.Net.EndPoint)" />, and the connection has succeeded;  
-  
- -or-  
-  
- <see langword="true" /> if data can be sent;  
-  
- otherwise, returns <see langword="false" />.  
-  
- <see cref="F:System.Net.Sockets.SelectMode.SelectError" /><see langword="true" /> if processing a <see cref="M:System.Net.Sockets.Socket.Connect(System.Net.EndPoint)" /> that does not block, and the connection has failed;  
-  
- -or-  
-  
- <see langword="true" /> if <see cref="F:System.Net.Sockets.SocketOptionName.OutOfBandInline" /> is not set and out-of-band data is available;  
-  
- otherwise, returns <see langword="false" />.</returns>
       <exception cref="T:System.NotSupportedException">The <paramref name="mode" /> parameter is not one of the <see cref="T:System.Net.Sockets.SelectMode" /> values.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket. See remarks below.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
-    </member>
-    <member name="P:System.Net.Sockets.Socket.ProtocolType">
-      <summary>Gets the protocol type of the <see cref="T:System.Net.Sockets.Socket" />.</summary>
-      <returns>One of the <see cref="T:System.Net.Sockets.ProtocolType" /> values.</returns>
+      <returns>The status of the <see cref="T:System.Net.Sockets.Socket" /> based on the polling mode value passed in the <paramref name="mode" /> parameter.
+
+ <list type="table"><listheader><term> Mode</term><description> Return Value</description></listheader><item><term><see cref="F:System.Net.Sockets.SelectMode.SelectRead" /></term><description><see langword="true" /> if <see cref="M:System.Net.Sockets.Socket.Listen(System.Int32)" /> has been called and a connection is pending;
+
+ -or-
+
+ <see langword="true" /> if data is available for reading;
+
+ -or-
+
+ <see langword="true" /> if the connection has been closed, reset, or terminated;
+
+ otherwise, returns <see langword="false" />.</description></item><item><term><see cref="F:System.Net.Sockets.SelectMode.SelectWrite" /></term><description><see langword="true" />, if processing a <see cref="M:System.Net.Sockets.Socket.Connect(System.Net.EndPoint)" />, and the connection has succeeded;
+
+ -or-
+
+ <see langword="true" /> if data can be sent;
+
+ otherwise, returns <see langword="false" />.</description></item><item><term><see cref="F:System.Net.Sockets.SelectMode.SelectError" /></term><description><see langword="true" /> if processing a <see cref="M:System.Net.Sockets.Socket.Connect(System.Net.EndPoint)" /> that does not block, and the connection has failed;
+
+ -or-
+
+ <see langword="true" /> if <see cref="F:System.Net.Sockets.SocketOptionName.OutOfBandInline" /> is not set and out-of-band data is available;
+
+ otherwise, returns <see langword="false" />.</description></item></list></returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.Receive(System.Byte[])">
       <summary>Receives data from a bound <see cref="T:System.Net.Sockets.Socket" /> into a receive buffer.</summary>
       <param name="buffer">An array of type <see cref="T:System.Byte" /> that is the storage location for the received data.</param>
-      <returns>The number of bytes received.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="buffer" /> is <see langword="null" />.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
       <exception cref="T:System.Security.SecurityException">A caller in the call stack does not have the required permissions.</exception>
+      <returns>The number of bytes received.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.Receive(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags)">
       <summary>Receives the specified number of bytes from a bound <see cref="T:System.Net.Sockets.Socket" /> into the specified offset position of the receive buffer, using the specified <see cref="T:System.Net.Sockets.SocketFlags" />.</summary>
@@ -1858,25 +2023,35 @@ In .NET Compact Framework applications, the Windows CE default buffer space is s
       <param name="offset">The location in <paramref name="buffer" /> to store the received data.</param>
       <param name="size">The number of bytes to receive.</param>
       <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
-      <returns>The number of bytes received.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="buffer" /> is <see langword="null" />.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
         <paramref name="offset" /> is less than 0.
--or-
-<paramref name="offset" /> is greater than the length of <paramref name="buffer" />.
--or-
-<paramref name="size" /> is less than 0.
--or-
-<paramref name="size" /> is greater than the length of <paramref name="buffer" /> minus the value of the <paramref name="offset" /> parameter.</exception>
+
+ -or-
+
+ <paramref name="offset" /> is greater than the length of <paramref name="buffer" />.
+
+ -or-
+
+ <paramref name="size" /> is less than 0.
+
+ -or-
+
+ <paramref name="size" /> is greater than the length of <paramref name="buffer" /> minus the value of the <paramref name="offset" /> parameter.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">
         <paramref name="socketFlags" /> is not a valid combination of values.
--or-
-The <see cref="P:System.Net.Sockets.Socket.LocalEndPoint" /> property was not set.
--or-
-An operating system error occurs while accessing the <see cref="T:System.Net.Sockets.Socket" />.</exception>
+
+ -or-
+
+ The <see cref="P:System.Net.Sockets.Socket.LocalEndPoint" /> property was not set.
+
+ -or-
+
+ An operating system error occurs while accessing the <see cref="T:System.Net.Sockets.Socket" />.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
       <exception cref="T:System.Security.SecurityException">A caller in the call stack does not have the required permissions.</exception>
+      <returns>The number of bytes received.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.Receive(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.Sockets.SocketError@)">
       <summary>Receives data from a bound <see cref="T:System.Net.Sockets.Socket" /> into a receive buffer, using the specified <see cref="T:System.Net.Sockets.SocketFlags" />.</summary>
@@ -1885,32 +2060,41 @@ An operating system error occurs while accessing the <see cref="T:System.Net.Soc
       <param name="size">The number of bytes to receive.</param>
       <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
       <param name="errorCode">A <see cref="T:System.Net.Sockets.SocketError" /> object that stores the socket error.</param>
-      <returns>The number of bytes received.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="buffer" /> is <see langword="null" />.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
         <paramref name="offset" /> is less than 0.
--or-
-<paramref name="offset" /> is greater than the length of <paramref name="buffer" />.
--or-
-<paramref name="size" /> is less than 0.
--or-
-<paramref name="size" /> is greater than the length of <paramref name="buffer" /> minus the value of the <paramref name="offset" /> parameter.</exception>
+
+ -or-
+
+ <paramref name="offset" /> is greater than the length of <paramref name="buffer" />.
+
+ -or-
+
+ <paramref name="size" /> is less than 0.
+
+ -or-
+
+ <paramref name="size" /> is greater than the length of <paramref name="buffer" /> minus the value of the <paramref name="offset" /> parameter.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">
         <paramref name="socketFlags" /> is not a valid combination of values.
--or-
-The <see cref="P:System.Net.Sockets.Socket.LocalEndPoint" /> property is not set.
--or-
-An operating system error occurs while accessing the <see cref="T:System.Net.Sockets.Socket" />.</exception>
+
+ -or-
+
+ The <see cref="P:System.Net.Sockets.Socket.LocalEndPoint" /> property is not set.
+
+ -or-
+
+ An operating system error occurs while accessing the <see cref="T:System.Net.Sockets.Socket" />.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
       <exception cref="T:System.Security.SecurityException">A caller in the call stack does not have the required permissions.</exception>
+      <returns>The number of bytes received.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.Receive(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags)">
       <summary>Receives the specified number of bytes of data from a bound <see cref="T:System.Net.Sockets.Socket" /> into a receive buffer, using the specified <see cref="T:System.Net.Sockets.SocketFlags" />.</summary>
       <param name="buffer">An array of type <see cref="T:System.Byte" /> that is the storage location for the received data.</param>
       <param name="size">The number of bytes to receive.</param>
       <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
-      <returns>The number of bytes received.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="buffer" /> is <see langword="null" />.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
@@ -1918,81 +2102,114 @@ An operating system error occurs while accessing the <see cref="T:System.Net.Soc
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
       <exception cref="T:System.Security.SecurityException">A caller in the call stack does not have the required permissions.</exception>
+      <returns>The number of bytes received.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.Receive(System.Byte[],System.Net.Sockets.SocketFlags)">
       <summary>Receives data from a bound <see cref="T:System.Net.Sockets.Socket" /> into a receive buffer, using the specified <see cref="T:System.Net.Sockets.SocketFlags" />.</summary>
       <param name="buffer">An array of type <see cref="T:System.Byte" /> that is the storage location for the received data.</param>
       <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
-      <returns>The number of bytes received.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="buffer" /> is <see langword="null" />.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
       <exception cref="T:System.Security.SecurityException">A caller in the call stack does not have the required permissions.</exception>
+      <returns>The number of bytes received.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.Receive(System.Collections.Generic.IList{System.ArraySegment{System.Byte}})">
       <summary>Receives data from a bound <see cref="T:System.Net.Sockets.Socket" /> into the list of receive buffers.</summary>
       <param name="buffers">A list of <see cref="T:System.ArraySegment`1" />s of type <see cref="T:System.Byte" /> that contains the received data.</param>
-      <returns>The number of bytes received.</returns>
       <exception cref="T:System.ArgumentNullException">The <paramref name="buffer" /> parameter is <see langword="null" />.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred while attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>The number of bytes received.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.Receive(System.Collections.Generic.IList{System.ArraySegment{System.Byte}},System.Net.Sockets.SocketFlags)">
       <summary>Receives data from a bound <see cref="T:System.Net.Sockets.Socket" /> into the list of receive buffers, using the specified <see cref="T:System.Net.Sockets.SocketFlags" />.</summary>
       <param name="buffers">A list of <see cref="T:System.ArraySegment`1" />s of type <see cref="T:System.Byte" /> that contains the received data.</param>
       <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
-      <returns>The number of bytes received.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="buffers" /> is <see langword="null" />.
--or-
-<paramref name="buffers" />.Count is zero.</exception>
+
+ -or-
+
+ <paramref name="buffers" />.Count is zero.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred while attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>The number of bytes received.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.Receive(System.Collections.Generic.IList{System.ArraySegment{System.Byte}},System.Net.Sockets.SocketFlags,System.Net.Sockets.SocketError@)">
       <summary>Receives data from a bound <see cref="T:System.Net.Sockets.Socket" /> into the list of receive buffers, using the specified <see cref="T:System.Net.Sockets.SocketFlags" />.</summary>
       <param name="buffers">A list of <see cref="T:System.ArraySegment`1" />s of type <see cref="T:System.Byte" /> that contains the received data.</param>
       <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
       <param name="errorCode">A <see cref="T:System.Net.Sockets.SocketError" /> object that stores the socket error.</param>
-      <returns>The number of bytes received.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="buffers" /> is <see langword="null" />.
--or-
-<paramref name="buffers" />.Count is zero.</exception>
+
+ -or-
+
+ <paramref name="buffers" />.Count is zero.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred while attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>The number of bytes received.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.Receive(System.Span{System.Byte})">
-      <param name="buffer" />
+      <summary>Receives data from a bound <see cref="T:System.Net.Sockets.Socket" /> into a receive buffer.</summary>
+      <param name="buffer">A span of bytes that is the storage location for the received data.</param>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <exception cref="T:System.Security.SecurityException">A caller in the call stack does not have the required permissions.</exception>
+      <returns>The number of bytes received.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.Receive(System.Span{System.Byte},System.Net.Sockets.SocketFlags)">
-      <param name="buffer" />
-      <param name="socketFlags" />
+      <summary>Receives data from a bound <see cref="T:System.Net.Sockets.Socket" /> into a receive buffer, using the specified <see cref="T:System.Net.Sockets.SocketFlags" />.</summary>
+      <param name="buffer">A span of bytes that is the storage location for the received data.</param>
+      <param name="socketFlags">A bitwise combination of the enumeration values that specifies send and receive behaviors.</param>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <exception cref="T:System.Security.SecurityException">A caller in the call stack does not have the required permissions.</exception>
+      <returns>The number of bytes received.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.Receive(System.Span{System.Byte},System.Net.Sockets.SocketFlags,System.Net.Sockets.SocketError@)">
-      <param name="buffer" />
-      <param name="socketFlags" />
-      <param name="errorCode" />
+      <summary>Receives data from a bound <see cref="T:System.Net.Sockets.Socket" /> into a receive buffer, using the specified <see cref="T:System.Net.Sockets.SocketFlags" />.</summary>
+      <param name="buffer">A span of bytes that is the storage location for the received data.</param>
+      <param name="socketFlags">A bitwise combination of the enumeration values that specifies send and receive behaviors.</param>
+      <param name="errorCode">When this method returns, contains one of the enumeration values that defines error codes for the socket.</param>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <exception cref="T:System.Security.SecurityException">A caller in the call stack does not have the required permissions.</exception>
+      <returns>The number of bytes received.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.Socket.ReceiveAsync(System.ArraySegment{System.Byte},System.Net.Sockets.SocketFlags)">
+      <summary>Receives data from a connected socket.</summary>
+      <param name="buffer">The buffer for the received data.</param>
+      <param name="socketFlags">A bitwise combination of SocketFlags values that will be used when receiving the data.</param>
+      <returns>An asynchronous task that completes with the number of bytes received.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.Socket.ReceiveAsync(System.Collections.Generic.IList{System.ArraySegment{System.Byte}},System.Net.Sockets.SocketFlags)">
+      <summary>Receives data from a connected socket.</summary>
+      <param name="buffers">A list of buffers for the received data.</param>
+      <param name="socketFlags">A bitwise combination of SocketFlags values that will be used when receiving the data.</param>
+      <returns>An asynchronous task that completes with the number of bytes received.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.Socket.ReceiveAsync(System.Memory{System.Byte},System.Net.Sockets.SocketFlags,System.Threading.CancellationToken)">
+      <summary>Receives data from a connected socket.</summary>
+      <param name="buffer">The buffer for the received data.</param>
+      <param name="socketFlags">A bitwise combination of SocketFlags values that will be used when receiving the data.</param>
+      <param name="cancellationToken">A cancellation token that can be used to cancel the asynchronous operation.</param>
+      <returns>An asynchronous task that completes with the number of bytes received.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.ReceiveAsync(System.Net.Sockets.SocketAsyncEventArgs)">
       <summary>Begins an asynchronous request to receive data from a connected <see cref="T:System.Net.Sockets.Socket" /> object.</summary>
       <param name="e">The <see cref="T:System.Net.Sockets.SocketAsyncEventArgs" /> object to use for this asynchronous socket operation.</param>
-      <returns>
-        <see langword="true" /> if the I/O operation is pending. The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will be raised upon completion of the operation.
-<see langword="false" /> if the I/O operation completed synchronously. In this case, The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will not be raised and the <paramref name="e" /> object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation.</returns>
       <exception cref="T:System.ArgumentException">An argument was invalid. The <see cref="P:System.Net.Sockets.SocketAsyncEventArgs.Buffer" /> or <see cref="P:System.Net.Sockets.SocketAsyncEventArgs.BufferList" /> properties on the <paramref name="e" /> parameter must reference valid buffers. One or the other of these properties may be set, but not both at the same time.</exception>
       <exception cref="T:System.InvalidOperationException">A socket operation was already in progress using the <see cref="T:System.Net.Sockets.SocketAsyncEventArgs" /> object specified in the <paramref name="e" /> parameter.</exception>
       <exception cref="T:System.NotSupportedException">Windows XP or later is required for this method.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
-    </member>
-    <member name="P:System.Net.Sockets.Socket.ReceiveBufferSize">
-      <summary>Gets or sets a value that specifies the size of the receive buffer of the <see cref="T:System.Net.Sockets.Socket" />.</summary>
-      <returns>An <see cref="T:System.Int32" /> that contains the size, in bytes, of the receive buffer. The default is 8192.</returns>
-      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
-      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
-      <exception cref="T:System.ArgumentOutOfRangeException">The value specified for a set operation is less than 0.</exception>
+      <returns>
+        <see langword="true" /> if the I/O operation is pending. The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will be raised upon completion of the operation.
+
+ <see langword="false" /> if the I/O operation completed synchronously. In this case, The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will not be raised and the <paramref name="e" /> object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.ReceiveFrom(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint@)">
       <summary>Receives the specified number of bytes of data into the specified location of the data buffer, using the specified <see cref="T:System.Net.Sockets.SocketFlags" />, and stores the endpoint.</summary>
@@ -2001,26 +2218,38 @@ An operating system error occurs while accessing the <see cref="T:System.Net.Soc
       <param name="size">The number of bytes to receive.</param>
       <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
       <param name="remoteEP">An <see cref="T:System.Net.EndPoint" />, passed by reference, that represents the remote server.</param>
-      <returns>The number of bytes received.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="buffer" /> is <see langword="null" />.
--or-
-<paramref name="remoteEP" /> is <see langword="null" />.</exception>
+
+ -or-
+
+ <paramref name="remoteEP" /> is <see langword="null" />.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
         <paramref name="offset" /> is less than 0.
--or-
-<paramref name="offset" /> is greater than the length of <paramref name="buffer" />.
--or-
-<paramref name="size" /> is less than 0.
--or-
-<paramref name="size" /> is greater than the length of the <paramref name="buffer" /> minus the value of the offset parameter.</exception>
+
+ -or-
+
+ <paramref name="offset" /> is greater than the length of <paramref name="buffer" />.
+
+ -or-
+
+ <paramref name="size" /> is less than 0.
+
+ -or-
+
+ <paramref name="size" /> is greater than the length of the <paramref name="buffer" /> minus the value of the offset parameter.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">
         <paramref name="socketFlags" /> is not a valid combination of values.
--or-
-The <see cref="P:System.Net.Sockets.Socket.LocalEndPoint" /> property was not set.
--or-
-An error occurred when attempting to access the socket.</exception>
+
+ -or-
+
+ The <see cref="P:System.Net.Sockets.Socket.LocalEndPoint" /> property was not set.
+
+ -or-
+
+ An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>The number of bytes received.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.ReceiveFrom(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint@)">
       <summary>Receives the specified number of bytes into the data buffer, using the specified <see cref="T:System.Net.Sockets.SocketFlags" />, and stores the endpoint.</summary>
@@ -2028,62 +2257,111 @@ An error occurred when attempting to access the socket.</exception>
       <param name="size">The number of bytes to receive.</param>
       <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
       <param name="remoteEP">An <see cref="T:System.Net.EndPoint" />, passed by reference, that represents the remote server.</param>
-      <returns>The number of bytes received.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="buffer" /> is <see langword="null" />.
--or-
-<paramref name="remoteEP" /> is <see langword="null" />.</exception>
+
+ -or-
+
+ <paramref name="remoteEP" /> is <see langword="null" />.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
         <paramref name="size" /> is less than 0.
--or-
-<paramref name="size" /> is greater than the length of <paramref name="buffer" />.</exception>
+
+ -or-
+
+ <paramref name="size" /> is greater than the length of <paramref name="buffer" />.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">
         <paramref name="socketFlags" /> is not a valid combination of values.
--or-
-The <see cref="P:System.Net.Sockets.Socket.LocalEndPoint" /> property was not set.
--or-
-An operating system error occurs while accessing the <see cref="T:System.Net.Sockets.Socket" />.</exception>
+
+ -or-
+
+ The <see cref="P:System.Net.Sockets.Socket.LocalEndPoint" /> property was not set.
+
+ -or-
+
+ An operating system error occurs while accessing the <see cref="T:System.Net.Sockets.Socket" />.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
       <exception cref="T:System.Security.SecurityException">A caller in the call stack does not have the required permissions.</exception>
+      <returns>The number of bytes received.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.ReceiveFrom(System.Byte[],System.Net.EndPoint@)">
       <summary>Receives a datagram into the data buffer and stores the endpoint.</summary>
       <param name="buffer">An array of type <see cref="T:System.Byte" /> that is the storage location for received data.</param>
       <param name="remoteEP">An <see cref="T:System.Net.EndPoint" />, passed by reference, that represents the remote server.</param>
-      <returns>The number of bytes received.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="buffer" /> is <see langword="null" />.
--or-
-<paramref name="remoteEP" /> is <see langword="null" />.</exception>
+
+ -or-
+
+ <paramref name="remoteEP" /> is <see langword="null" />.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
       <exception cref="T:System.Security.SecurityException">A caller in the call stack does not have the required permissions.</exception>
+      <returns>The number of bytes received.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.ReceiveFrom(System.Byte[],System.Net.Sockets.SocketFlags,System.Net.EndPoint@)">
       <summary>Receives a datagram into the data buffer, using the specified <see cref="T:System.Net.Sockets.SocketFlags" />, and stores the endpoint.</summary>
       <param name="buffer">An array of type <see cref="T:System.Byte" /> that is the storage location for the received data.</param>
       <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
       <param name="remoteEP">An <see cref="T:System.Net.EndPoint" />, passed by reference, that represents the remote server.</param>
-      <returns>The number of bytes received.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="buffer" /> is <see langword="null" />.
--or-
-<paramref name="remoteEP" /> is <see langword="null" />.</exception>
+
+ -or-
+
+ <paramref name="remoteEP" /> is <see langword="null" />.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
       <exception cref="T:System.Security.SecurityException">A caller in the call stack does not have the required permissions.</exception>
+      <returns>The number of bytes received.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.Socket.ReceiveFrom(System.Span{System.Byte},System.Net.EndPoint@)">
+      <summary>Receives a datagram into the data buffer and stores the endpoint.</summary>
+      <param name="buffer">A span of bytes that is the storage location for received data.</param>
+      <param name="remoteEP">An <see cref="T:System.Net.EndPoint" />, passed by reference, that represents the remote server.</param>
+      <exception cref="T:System.ArgumentNullException">
+        <c>remoteEP</c> is <see langword="null" />.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>The number of bytes received.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.Socket.ReceiveFrom(System.Span{System.Byte},System.Net.Sockets.SocketFlags,System.Net.EndPoint@)">
+      <summary>Receives a datagram into the data buffer, using the specified <see cref="T:System.Net.Sockets.SocketFlags" />, and stores the endpoint.</summary>
+      <param name="buffer">A span of bytes that is the storage location for received data.</param>
+      <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
+      <param name="remoteEP">An <see cref="T:System.Net.EndPoint" />, passed by reference, that represents the remote server.</param>
+      <exception cref="T:System.ArgumentNullException">
+        <c>remoteEP</c> is <see langword="null" />.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>The number of bytes received.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.Socket.ReceiveFromAsync(System.ArraySegment{System.Byte},System.Net.Sockets.SocketFlags,System.Net.EndPoint)">
+      <summary>Receives data and returns the endpoint of the sending host.</summary>
+      <param name="buffer">The buffer for the received data.</param>
+      <param name="socketFlags">A bitwise combination of SocketFlags values that will be used when receiving the data.</param>
+      <param name="remoteEndPoint">An endpoint of the same type as the endpoint of the remote host.</param>
+      <returns>An asynchronous task that completes with a <see cref="T:System.Net.Sockets.SocketReceiveFromResult" /> containing the number of bytes received and the endpoint of the sending host.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.Socket.ReceiveFromAsync(System.Memory{System.Byte},System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.Threading.CancellationToken)">
+      <summary>Receives data and returns the endpoint of the sending host.</summary>
+      <param name="buffer">The buffer for the received data.</param>
+      <param name="socketFlags">A bitwise combination of SocketFlags values that will be used when receiving the data.</param>
+      <param name="remoteEndPoint">An endpoint of the same type as the endpoint of the remote host.</param>
+      <param name="cancellationToken">A cancellation token that can be used to signal the asynchronous operation should be canceled.</param>
+      <returns>An asynchronous task that completes with a <see cref="T:System.Net.Sockets.SocketReceiveFromResult" /> containing the number of bytes received and the endpoint of the sending host.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.ReceiveFromAsync(System.Net.Sockets.SocketAsyncEventArgs)">
       <summary>Begins to asynchronously receive data from a specified network device.</summary>
       <param name="e">The <see cref="T:System.Net.Sockets.SocketAsyncEventArgs" /> object to use for this asynchronous socket operation.</param>
-      <returns>
-        <see langword="true" /> if the I/O operation is pending. The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will be raised upon completion of the operation.
-<see langword="false" /> if the I/O operation completed synchronously. In this case, The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will not be raised and the <paramref name="e" /> object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation.</returns>
       <exception cref="T:System.ArgumentNullException">The <see cref="P:System.Net.Sockets.SocketAsyncEventArgs.RemoteEndPoint" /> cannot be null.</exception>
       <exception cref="T:System.InvalidOperationException">A socket operation was already in progress using the <see cref="T:System.Net.Sockets.SocketAsyncEventArgs" /> object specified in the <paramref name="e" /> parameter.</exception>
       <exception cref="T:System.NotSupportedException">Windows XP or later is required for this method.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <returns>
+        <see langword="true" /> if the I/O operation is pending. The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will be raised upon completion of the operation.
+
+ <see langword="false" /> if the I/O operation completed synchronously. In this case, The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will not be raised and the <paramref name="e" /> object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.ReceiveMessageFrom(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags@,System.Net.EndPoint@,System.Net.Sockets.IPPacketInformation@)">
       <summary>Receives the specified number of bytes of data into the specified location of the data buffer, using the specified <see cref="T:System.Net.Sockets.SocketFlags" />, and stores the endpoint and packet information.</summary>
@@ -2093,57 +2371,82 @@ An operating system error occurs while accessing the <see cref="T:System.Net.Soc
       <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
       <param name="remoteEP">An <see cref="T:System.Net.EndPoint" />, passed by reference, that represents the remote server.</param>
       <param name="ipPacketInformation">An <see cref="T:System.Net.Sockets.IPPacketInformation" /> holding address and interface information.</param>
-      <returns>The number of bytes received.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="buffer" /> is <see langword="null" />.
-- or-
-<paramref name="remoteEP" /> is <see langword="null" />.</exception>
+
+ -or-
+
+ <paramref name="remoteEP" /> is <see langword="null" />.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
         <paramref name="offset" /> is less than 0.
--or-
-<paramref name="offset" /> is greater than the length of <paramref name="buffer" />.
--or-
-<paramref name="size" /> is less than 0.
--or-
-<paramref name="size" /> is greater than the length of the <paramref name="buffer" /> minus the value of the offset parameter.</exception>
+
+ -or-
+
+ <paramref name="offset" /> is greater than the length of <paramref name="buffer" />.
+
+ -or-
+
+ <paramref name="size" /> is less than 0.
+
+ -or-
+
+ <paramref name="size" /> is greater than the length of the <paramref name="buffer" /> minus the value of the offset parameter.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">
         <paramref name="socketFlags" /> is not a valid combination of values.
--or-
-The <see cref="P:System.Net.Sockets.Socket.LocalEndPoint" /> property was not set.
--or-
-The .NET Framework is running on an AMD 64-bit processor.
--or-
-An error occurred when attempting to access the socket.</exception>
+
+ -or-
+
+ The <see cref="P:System.Net.Sockets.Socket.LocalEndPoint" /> property was not set.
+
+ -or-
+
+ The .NET Framework is running on an AMD 64-bit processor.
+
+ -or-
+
+ An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
-      <exception cref="T:System.NotSupportedException">The operating system is Windows 2000 or earlier, and this method requires Windows XP.</exception>
+      <returns>The number of bytes received.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.Socket.ReceiveMessageFrom(System.Span{System.Byte},System.Net.Sockets.SocketFlags@,System.Net.EndPoint@,System.Net.Sockets.IPPacketInformation@)">
+      <summary>Receives the specified number of bytes of data into the specified location of the data buffer, using the specified <paramref name="socketFlags" />, and stores the endpoint and packet information.</summary>
+      <param name="buffer">An <see cref="T:System.Span`1" /> of type <see cref="T:System.Byte" /> that is the storage location for received data.</param>
+      <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
+      <param name="remoteEP">An <see cref="T:System.Net.EndPoint" />, passed by reference, that represents the remote server.</param>
+      <param name="ipPacketInformation">An <see cref="T:System.Net.Sockets.IPPacketInformation" /> holding address and interface information.</param>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> object has been closed.</exception>
+      <exception cref="T:System.ArgumentNullException">The <see cref="T:System.Net.EndPoint" /> remoteEP is <see langword="null" />.</exception>
+      <exception cref="T:System.ArgumentException">The <see cref="P:System.Net.Sockets.Socket.AddressFamily" /> of the <see cref="T:System.Net.EndPoint" /> used in <see cref="M:System.Net.Sockets.Socket.ReceiveMessageFrom(System.Span{System.Byte},System.Net.Sockets.SocketFlags@,System.Net.EndPoint@,System.Net.Sockets.IPPacketInformation@)" /> needs to match the <see cref="P:System.Net.Sockets.Socket.AddressFamily" /> of the <see cref="T:System.Net.EndPoint" /> used in SendTo.</exception>
+      <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Net.Sockets.Socket" /> object is not in blocking mode and cannot accept this synchronous call.
+You must call the Bind method before performing this operation.</exception>
+      <returns>The number of bytes received.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.Socket.ReceiveMessageFromAsync(System.ArraySegment{System.Byte},System.Net.Sockets.SocketFlags,System.Net.EndPoint)">
+      <summary>Receives data and returns additional information about the sender of the message.</summary>
+      <param name="buffer">The buffer for the received data.</param>
+      <param name="socketFlags">A bitwise combination of SocketFlags values that will be used when receiving the data.</param>
+      <param name="remoteEndPoint">An endpoint of the same type as the endpoint of the remote host.</param>
+      <returns>An asynchronous task that completes with a <see cref="T:System.Net.Sockets.SocketReceiveMessageFromResult" /> containing the number of bytes received and additional information about the sending host.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.Socket.ReceiveMessageFromAsync(System.Memory{System.Byte},System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.Threading.CancellationToken)">
+      <summary>Receives data and returns additional information about the sender of the message.</summary>
+      <param name="buffer">The buffer for the received data.</param>
+      <param name="socketFlags">A bitwise combination of SocketFlags values that will be used when receiving the data.</param>
+      <param name="remoteEndPoint">An endpoint of the same type as the endpoint of the remote host.</param>
+      <param name="cancellationToken">A cancellation token that can be used to signal the asynchronous operation should be canceled.</param>
+      <returns>An asynchronous task that completes with a <see cref="T:System.Net.Sockets.SocketReceiveMessageFromResult" /> containing the number of bytes received and additional information about the sending host.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.ReceiveMessageFromAsync(System.Net.Sockets.SocketAsyncEventArgs)">
       <summary>Begins to asynchronously receive the specified number of bytes of data into the specified location in the data buffer, using the specified <see cref="P:System.Net.Sockets.SocketAsyncEventArgs.SocketFlags" />, and stores the endpoint and packet information.</summary>
       <param name="e">The <see cref="T:System.Net.Sockets.SocketAsyncEventArgs" /> object to use for this asynchronous socket operation.</param>
-      <returns>
-        <see langword="true" /> if the I/O operation is pending. The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will be raised upon completion of the operation.
-<see langword="false" /> if the I/O operation completed synchronously. In this case, The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will not be raised and the <paramref name="e" /> object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation.</returns>
       <exception cref="T:System.ArgumentNullException">The <see cref="P:System.Net.Sockets.SocketAsyncEventArgs.RemoteEndPoint" /> cannot be null.</exception>
       <exception cref="T:System.NotSupportedException">Windows XP or later is required for this method.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
-    </member>
-    <member name="P:System.Net.Sockets.Socket.ReceiveTimeout">
-      <summary>Gets or sets a value that specifies the amount of time after which a synchronous <see cref="Overload:System.Net.Sockets.Socket.Receive" /> call will time out.</summary>
-      <returns>The time-out value, in milliseconds. The default value is 0, which indicates an infinite time-out period. Specifying -1 also indicates an infinite time-out period.</returns>
-      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
-      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
-      <exception cref="T:System.ArgumentOutOfRangeException">The value specified for a set operation is less than -1.</exception>
-    </member>
-    <member name="P:System.Net.Sockets.Socket.RemoteEndPoint">
-      <summary>Gets the remote endpoint.</summary>
-      <returns>The <see cref="T:System.Net.EndPoint" /> with which the <see cref="T:System.Net.Sockets.Socket" /> is communicating.</returns>
-      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
-      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
-    </member>
-    <member name="P:System.Net.Sockets.Socket.SafeHandle">
-      <summary>Gets a <see cref="T:System.Net.Sockets.SafeSocketHandle" /> that represents the socket handle that the current <see cref="T:System.Net.Sockets.Socket" /> object encapsulates.</summary>
-      <returns>A socket handle exposed in a safe manner for the socket that the current <see cref="T:System.Net.Sockets.Socket" /> object encapsulates.</returns>
+      <returns>
+        <see langword="true" /> if the I/O operation is pending. The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will be raised upon completion of the operation.
+
+ <see langword="false" /> if the I/O operation completed synchronously. In this case, The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will not be raised and the <paramref name="e" /> object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.Select(System.Collections.IList,System.Collections.IList,System.Collections.IList,System.Int32)">
       <summary>Determines the status of one or more sockets.</summary>
@@ -2152,20 +2455,25 @@ An error occurred when attempting to access the socket.</exception>
       <param name="checkError">An <see cref="T:System.Collections.IList" /> of <see cref="T:System.Net.Sockets.Socket" /> instances to check for errors.</param>
       <param name="microSeconds">The time-out value, in microseconds. A -1 value indicates an infinite time-out.</param>
       <exception cref="T:System.ArgumentNullException">The <paramref name="checkRead" /> parameter is <see langword="null" /> or empty.
--and-
-The <paramref name="checkWrite" /> parameter is <see langword="null" /> or empty
--and-
-The <paramref name="checkError" /> parameter is <see langword="null" /> or empty.</exception>
+
+ -and-
+
+ The <paramref name="checkWrite" /> parameter is <see langword="null" /> or empty
+
+ -and-
+
+ The <paramref name="checkError" /> parameter is <see langword="null" /> or empty.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <exception cref="T:System.ObjectDisposedException">.NET 5.0 and later: One or more sockets are disposed.</exception>
     </member>
     <member name="M:System.Net.Sockets.Socket.Send(System.Byte[])">
       <summary>Sends data to a connected <see cref="T:System.Net.Sockets.Socket" />.</summary>
       <param name="buffer">An array of type <see cref="T:System.Byte" /> that contains the data to be sent.</param>
-      <returns>The number of bytes sent to the <see cref="T:System.Net.Sockets.Socket" />.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="buffer" /> is <see langword="null" />.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>The number of bytes sent to the <see cref="T:System.Net.Sockets.Socket" />.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.Send(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags)">
       <summary>Sends the specified number of bytes of data to a connected <see cref="T:System.Net.Sockets.Socket" />, starting at the specified offset, and using the specified <see cref="T:System.Net.Sockets.SocketFlags" />.</summary>
@@ -2173,139 +2481,182 @@ The <paramref name="checkError" /> parameter is <see langword="null" /> or empty
       <param name="offset">The position in the data buffer at which to begin sending data.</param>
       <param name="size">The number of bytes to send.</param>
       <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
-      <returns>The number of bytes sent to the <see cref="T:System.Net.Sockets.Socket" />.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="buffer" /> is <see langword="null" />.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
         <paramref name="offset" /> is less than 0.
--or-
-<paramref name="offset" /> is greater than the length of <paramref name="buffer" />.
--or-
-<paramref name="size" /> is less than 0.
--or-
-<paramref name="size" /> is greater than the length of <paramref name="buffer" /> minus the value of the <paramref name="offset" /> parameter.</exception>
+
+ -or-
+
+ <paramref name="offset" /> is greater than the length of <paramref name="buffer" />.
+
+ -or-
+
+ <paramref name="size" /> is less than 0.
+
+ -or-
+
+ <paramref name="size" /> is greater than the length of <paramref name="buffer" /> minus the value of the <paramref name="offset" /> parameter.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">
         <paramref name="socketFlags" /> is not a valid combination of values.
--or-
-An operating system error occurs while accessing the <see cref="T:System.Net.Sockets.Socket" />.</exception>
+
+ -or-
+
+ An operating system error occurs while accessing the <see cref="T:System.Net.Sockets.Socket" />.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>The number of bytes sent to the <see cref="T:System.Net.Sockets.Socket" />.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.Send(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.Sockets.SocketError@)">
-      <summary>Sends the specified number of bytes of data to a connected <see cref="T:System.Net.Sockets.Socket" />, starting at the specified offset, and using the specified <see cref="T:System.Net.Sockets.SocketFlags" /></summary>
+      <summary>Sends the specified number of bytes of data to a connected <see cref="T:System.Net.Sockets.Socket" />, starting at the specified offset, and using the specified <see cref="T:System.Net.Sockets.SocketFlags" />.</summary>
       <param name="buffer">An array of type <see cref="T:System.Byte" /> that contains the data to be sent.</param>
       <param name="offset">The position in the data buffer at which to begin sending data.</param>
       <param name="size">The number of bytes to send.</param>
       <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
       <param name="errorCode">A <see cref="T:System.Net.Sockets.SocketError" /> object that stores the socket error.</param>
-      <returns>The number of bytes sent to the <see cref="T:System.Net.Sockets.Socket" />.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="buffer" /> is <see langword="null" />.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
         <paramref name="offset" /> is less than 0.
--or-
-<paramref name="offset" /> is greater than the length of <paramref name="buffer" />.
--or-
-<paramref name="size" /> is less than 0.
--or-
-<paramref name="size" /> is greater than the length of <paramref name="buffer" /> minus the value of the <paramref name="offset" /> parameter.</exception>
+
+ -or-
+
+ <paramref name="offset" /> is greater than the length of <paramref name="buffer" />.
+
+ -or-
+
+ <paramref name="size" /> is less than 0.
+
+ -or-
+
+ <paramref name="size" /> is greater than the length of <paramref name="buffer" /> minus the value of the <paramref name="offset" /> parameter.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">
         <paramref name="socketFlags" /> is not a valid combination of values.
--or-
-An operating system error occurs while accessing the <see cref="T:System.Net.Sockets.Socket" />.</exception>
+
+ -or-
+
+ An operating system error occurs while accessing the <see cref="T:System.Net.Sockets.Socket" />.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>The number of bytes sent to the <see cref="T:System.Net.Sockets.Socket" />.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.Send(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags)">
       <summary>Sends the specified number of bytes of data to a connected <see cref="T:System.Net.Sockets.Socket" />, using the specified <see cref="T:System.Net.Sockets.SocketFlags" />.</summary>
       <param name="buffer">An array of type <see cref="T:System.Byte" /> that contains the data to be sent.</param>
       <param name="size">The number of bytes to send.</param>
       <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
-      <returns>The number of bytes sent to the <see cref="T:System.Net.Sockets.Socket" />.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="buffer" /> is <see langword="null" />.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
         <paramref name="size" /> is less than 0 or exceeds the size of the buffer.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">
         <paramref name="socketFlags" /> is not a valid combination of values.
--or-
-An operating system error occurs while accessing the socket.</exception>
+
+ -or-
+
+ An operating system error occurs while accessing the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>The number of bytes sent to the <see cref="T:System.Net.Sockets.Socket" />.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.Send(System.Byte[],System.Net.Sockets.SocketFlags)">
       <summary>Sends data to a connected <see cref="T:System.Net.Sockets.Socket" /> using the specified <see cref="T:System.Net.Sockets.SocketFlags" />.</summary>
       <param name="buffer">An array of type <see cref="T:System.Byte" /> that contains the data to be sent.</param>
       <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
-      <returns>The number of bytes sent to the <see cref="T:System.Net.Sockets.Socket" />.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="buffer" /> is <see langword="null" />.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>The number of bytes sent to the <see cref="T:System.Net.Sockets.Socket" />.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.Send(System.Collections.Generic.IList{System.ArraySegment{System.Byte}})">
       <summary>Sends the set of buffers in the list to a connected <see cref="T:System.Net.Sockets.Socket" />.</summary>
       <param name="buffers">A list of <see cref="T:System.ArraySegment`1" />s of type <see cref="T:System.Byte" /> that contains the data to be sent.</param>
-      <returns>The number of bytes sent to the <see cref="T:System.Net.Sockets.Socket" />.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="buffers" /> is <see langword="null" />.</exception>
       <exception cref="T:System.ArgumentException">
         <paramref name="buffers" /> is empty.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket. See remarks section below.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>The number of bytes sent to the <see cref="T:System.Net.Sockets.Socket" />.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.Send(System.Collections.Generic.IList{System.ArraySegment{System.Byte}},System.Net.Sockets.SocketFlags)">
       <summary>Sends the set of buffers in the list to a connected <see cref="T:System.Net.Sockets.Socket" />, using the specified <see cref="T:System.Net.Sockets.SocketFlags" />.</summary>
       <param name="buffers">A list of <see cref="T:System.ArraySegment`1" />s of type <see cref="T:System.Byte" /> that contains the data to be sent.</param>
       <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
-      <returns>The number of bytes sent to the <see cref="T:System.Net.Sockets.Socket" />.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="buffers" /> is <see langword="null" />.</exception>
       <exception cref="T:System.ArgumentException">
         <paramref name="buffers" /> is empty.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>The number of bytes sent to the <see cref="T:System.Net.Sockets.Socket" />.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.Send(System.Collections.Generic.IList{System.ArraySegment{System.Byte}},System.Net.Sockets.SocketFlags,System.Net.Sockets.SocketError@)">
       <summary>Sends the set of buffers in the list to a connected <see cref="T:System.Net.Sockets.Socket" />, using the specified <see cref="T:System.Net.Sockets.SocketFlags" />.</summary>
       <param name="buffers">A list of <see cref="T:System.ArraySegment`1" />s of type <see cref="T:System.Byte" /> that contains the data to be sent.</param>
       <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
       <param name="errorCode">A <see cref="T:System.Net.Sockets.SocketError" /> object that stores the socket error.</param>
-      <returns>The number of bytes sent to the <see cref="T:System.Net.Sockets.Socket" />.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="buffers" /> is <see langword="null" />.</exception>
       <exception cref="T:System.ArgumentException">
         <paramref name="buffers" /> is empty.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>The number of bytes sent to the <see cref="T:System.Net.Sockets.Socket" />.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.Send(System.ReadOnlySpan{System.Byte})">
-      <param name="buffer" />
+      <summary>Sends data to a connected <see cref="T:System.Net.Sockets.Socket" />.</summary>
+      <param name="buffer">A span of bytes that contains the data to be sent.</param>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>The number of bytes sent to the <see cref="T:System.Net.Sockets.Socket" />.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.Send(System.ReadOnlySpan{System.Byte},System.Net.Sockets.SocketFlags)">
-      <param name="buffer" />
-      <param name="socketFlags" />
+      <summary>Sends data to a connected <see cref="T:System.Net.Sockets.Socket" /> using the specified <see cref="T:System.Net.Sockets.SocketFlags" />.</summary>
+      <param name="buffer">A span of bytes that contains the data to be sent.</param>
+      <param name="socketFlags">A bitwise combination of the enumeration values that specifies send and receive behaviors.</param>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>The number of bytes sent to the <see cref="T:System.Net.Sockets.Socket" />.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.Send(System.ReadOnlySpan{System.Byte},System.Net.Sockets.SocketFlags,System.Net.Sockets.SocketError@)">
-      <param name="buffer" />
-      <param name="socketFlags" />
-      <param name="errorCode" />
+      <summary>Sends data to a connected <see cref="T:System.Net.Sockets.Socket" /> using the specified <see cref="T:System.Net.Sockets.SocketFlags" />.</summary>
+      <param name="buffer">A span of bytes that contains the data to be sent.</param>
+      <param name="socketFlags">A bitwise combination of the enumeration values that specifies send and receive behaviors.</param>
+      <param name="errorCode">When this method returns, contains one of the enumeration values that defines error codes for the socket.</param>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>The number of bytes sent to the <see cref="T:System.Net.Sockets.Socket" />.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.Socket.SendAsync(System.ArraySegment{System.Byte},System.Net.Sockets.SocketFlags)">
+      <summary>Sends data on a connected socket.</summary>
+      <param name="buffer">The buffer for the data to send.</param>
+      <param name="socketFlags">A bitwise combination of SocketFlags values that will be used when sending the data.</param>
+      <returns>An asynchronous task that completes with the number of bytes sent.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.Socket.SendAsync(System.Collections.Generic.IList{System.ArraySegment{System.Byte}},System.Net.Sockets.SocketFlags)">
+      <summary>Sends data on a connected socket.</summary>
+      <param name="buffers">A list of buffers for the data to send.</param>
+      <param name="socketFlags">A bitwise combination of SocketFlags values that will be used when sending the data.</param>
+      <returns>An asynchronous task that completes with the number of bytes sent.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.SendAsync(System.Net.Sockets.SocketAsyncEventArgs)">
       <summary>Sends data asynchronously to a connected <see cref="T:System.Net.Sockets.Socket" /> object.</summary>
       <param name="e">The <see cref="T:System.Net.Sockets.SocketAsyncEventArgs" /> object to use for this asynchronous socket operation.</param>
-      <returns>
-        <see langword="true" /> if the I/O operation is pending. The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will be raised upon completion of the operation.
-<see langword="false" /> if the I/O operation completed synchronously. In this case, The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will not be raised and the <paramref name="e" /> object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation.</returns>
       <exception cref="T:System.ArgumentException">The <see cref="P:System.Net.Sockets.SocketAsyncEventArgs.Buffer" /> or <see cref="P:System.Net.Sockets.SocketAsyncEventArgs.BufferList" /> properties on the <paramref name="e" /> parameter must reference valid buffers. One or the other of these properties may be set, but not both at the same time.</exception>
       <exception cref="T:System.InvalidOperationException">A socket operation was already in progress using the <see cref="T:System.Net.Sockets.SocketAsyncEventArgs" /> object specified in the <paramref name="e" /> parameter.</exception>
       <exception cref="T:System.NotSupportedException">Windows XP or later is required for this method.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">The <see cref="T:System.Net.Sockets.Socket" /> is not yet connected or was not obtained via an <see cref="M:System.Net.Sockets.Socket.Accept" />, <see cref="M:System.Net.Sockets.Socket.AcceptAsync(System.Net.Sockets.SocketAsyncEventArgs)" />,or <see cref="Overload:System.Net.Sockets.Socket.BeginAccept" />, method.</exception>
+      <returns>
+        <see langword="true" /> if the I/O operation is pending. The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will be raised upon completion of the operation.
+
+ <see langword="false" /> if the I/O operation completed synchronously. In this case, The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will not be raised and the <paramref name="e" /> object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation.</returns>
     </member>
-    <member name="P:System.Net.Sockets.Socket.SendBufferSize">
-      <summary>Gets or sets a value that specifies the size of the send buffer of the <see cref="T:System.Net.Sockets.Socket" />.</summary>
-      <returns>An <see cref="T:System.Int32" /> that contains the size, in bytes, of the send buffer. The default is 8192.</returns>
-      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
-      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
-      <exception cref="T:System.ArgumentOutOfRangeException">The value specified for a set operation is less than 0.</exception>
+    <member name="M:System.Net.Sockets.Socket.SendAsync(System.ReadOnlyMemory{System.Byte},System.Net.Sockets.SocketFlags,System.Threading.CancellationToken)">
+      <summary>Sends data on a connected socket.</summary>
+      <param name="buffer">The buffer for the data to send.</param>
+      <param name="socketFlags">A bitwise combination of SocketFlags values that will be used when sending the data.</param>
+      <param name="cancellationToken">A cancellation token that can be used to cancel the asynchronous operation.</param>
+      <returns>An asynchronous task that completes with the number of bytes sent.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.SendFile(System.String)">
       <summary>Sends the file <paramref name="fileName" /> to a connected <see cref="T:System.Net.Sockets.Socket" /> object with the <see cref="F:System.Net.Sockets.TransmitFileOptions.UseDefaultWorkerThread" /> transmit flag.</summary>
@@ -2318,36 +2669,67 @@ An operating system error occurs while accessing the socket.</exception>
     </member>
     <member name="M:System.Net.Sockets.Socket.SendFile(System.String,System.Byte[],System.Byte[],System.Net.Sockets.TransmitFileOptions)">
       <summary>Sends the file <paramref name="fileName" /> and buffers of data to a connected <see cref="T:System.Net.Sockets.Socket" /> object using the specified <see cref="T:System.Net.Sockets.TransmitFileOptions" /> value.</summary>
+      <param name="fileName">The path and name of the file to be sent. This parameter can be <see langword="null" />.</param>
+      <param name="preBuffer">The data to be sent before the file is sent. This parameter can be <see langword="null" />.</param>
+      <param name="postBuffer">The data to be sent after the file is sent. This parameter can be <see langword="null" />.</param>
+      <param name="flags">A bitwise combination of the enumeration values that specifies how the file is transferred.</param>
+      <exception cref="T:System.NotSupportedException">The operating system is not Windows NT or later.
+
+-or-
+
+ The socket is not connected to a remote host.</exception>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> object has been closed.</exception>
+      <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Net.Sockets.Socket" /> object is not in blocking mode and cannot accept this synchronous call.</exception>
+      <exception cref="T:System.IO.FileNotFoundException">The file <paramref name="fileName" /> was not found.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+    </member>
+    <member name="M:System.Net.Sockets.Socket.SendFile(System.String,System.ReadOnlySpan{System.Byte},System.ReadOnlySpan{System.Byte},System.Net.Sockets.TransmitFileOptions)">
+      <summary>Sends the file <paramref name="fileName" /> and buffers of data to a connected <see cref="T:System.Net.Sockets.Socket" /> object using the specified <see cref="T:System.Net.Sockets.TransmitFileOptions" /> value.</summary>
+      <param name="fileName">A <see cref="T:System.String" /> that contains the path and name of the file to be sent. This parameter can be <see langword="null" />.</param>
+      <param name="preBuffer">A <see cref="T:System.ReadOnlySpan`1" /> that contains data to be sent before the file is sent. This buffer can be empty.</param>
+      <param name="postBuffer">A <see cref="T:System.ReadOnlySpan`1" /> that contains data to be sent after the file is sent. This buffer can be empty.</param>
+      <param name="flags">One or more of <see cref="T:System.Net.Sockets.TransmitFileOptions" /> values.</param>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> object has been closed.</exception>
+      <exception cref="T:System.NotSupportedException">The <see cref="T:System.Net.Sockets.Socket" /> object is not connected to a remote host.</exception>
+      <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Net.Sockets.Socket" /> object is not in blocking mode and cannot accept this synchronous call.</exception>
+      <exception cref="T:System.IO.FileNotFoundException">The file <paramref name="fileName" /> was not found.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+    </member>
+    <member name="M:System.Net.Sockets.Socket.SendFileAsync(System.String,System.ReadOnlyMemory{System.Byte},System.ReadOnlyMemory{System.Byte},System.Net.Sockets.TransmitFileOptions,System.Threading.CancellationToken)">
+      <summary>Sends the file <paramref name="fileName" /> and buffers of data to a connected <see cref="T:System.Net.Sockets.Socket" /> object using the specified <see cref="T:System.Net.Sockets.TransmitFileOptions" /> value.</summary>
       <param name="fileName">A <see cref="T:System.String" /> that contains the path and name of the file to be sent. This parameter can be <see langword="null" />.</param>
       <param name="preBuffer">A <see cref="T:System.Byte" /> array that contains data to be sent before the file is sent. This parameter can be <see langword="null" />.</param>
       <param name="postBuffer">A <see cref="T:System.Byte" /> array that contains data to be sent after the file is sent. This parameter can be <see langword="null" />.</param>
       <param name="flags">One or more of <see cref="T:System.Net.Sockets.TransmitFileOptions" /> values.</param>
-      <exception cref="T:System.NotSupportedException">The operating system is not Windows NT or later.
--or-
-The socket is not connected to a remote host.</exception>
+      <param name="cancellationToken">A cancellation token that can be used to cancel the asynchronous operation.</param>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> object has been closed.</exception>
-      <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Net.Sockets.Socket" /> object is not in blocking mode and cannot accept this synchronous call.</exception>
+      <exception cref="T:System.NotSupportedException">The <see cref="T:System.Net.Sockets.Socket" /> object is not connected to a remote host.</exception>
+      <exception cref="T:System.IO.FileNotFoundException">The file <paramref name="fileName" /> was not found.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <returns>A value task that represents the asynchronous send file operation.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.Socket.SendFileAsync(System.String,System.Threading.CancellationToken)">
+      <summary>Sends the file <paramref name="fileName" /> to a connected <see cref="T:System.Net.Sockets.Socket" /> object.</summary>
+      <param name="fileName">A <see cref="T:System.String" /> that contains the path and name of the file to be sent. This parameter can be <see langword="null" />.</param>
+      <param name="cancellationToken">A cancellation token that can be used to cancel the asynchronous operation.</param>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> object has been closed.</exception>
+      <exception cref="T:System.NotSupportedException">The <see cref="T:System.Net.Sockets.Socket" /> object is not connected to a remote host.</exception>
       <exception cref="T:System.IO.FileNotFoundException">The file <paramref name="fileName" /> was not found.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <returns>A value task that represents the asynchronous send file operation.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.SendPacketsAsync(System.Net.Sockets.SocketAsyncEventArgs)">
       <summary>Sends a collection of files or in memory data buffers asynchronously to a connected <see cref="T:System.Net.Sockets.Socket" /> object.</summary>
       <param name="e">The <see cref="T:System.Net.Sockets.SocketAsyncEventArgs" /> object to use for this asynchronous socket operation.</param>
-      <returns>
-        <see langword="true" /> if the I/O operation is pending. The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will be raised upon completion of the operation.
-<see langword="false" /> if the I/O operation completed synchronously. In this case, The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will not be raised and the <paramref name="e" /> object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation.</returns>
       <exception cref="T:System.IO.FileNotFoundException">The file specified in the <see cref="P:System.Net.Sockets.SendPacketsElement.FilePath" /> property was not found.</exception>
       <exception cref="T:System.InvalidOperationException">A socket operation was already in progress using the <see cref="T:System.Net.Sockets.SocketAsyncEventArgs" /> object specified in the <paramref name="e" /> parameter.</exception>
-      <exception cref="T:System.NotSupportedException">Windows XP or later is required for this method. This exception also occurs if the <see cref="T:System.Net.Sockets.Socket" /> is not connected to a remote host.</exception>
+      <exception cref="T:System.NotSupportedException">The <see cref="T:System.Net.Sockets.Socket" /> is not connected to a remote host.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">A connectionless <see cref="T:System.Net.Sockets.Socket" /> is being used and the file being sent exceeds the maximum packet size of the underlying transport.</exception>
-    </member>
-    <member name="P:System.Net.Sockets.Socket.SendTimeout">
-      <summary>Gets or sets a value that specifies the amount of time after which a synchronous <see cref="Overload:System.Net.Sockets.Socket.Send" /> call will time out.</summary>
-      <returns>The time-out value, in milliseconds. If you set the property with a value between 1 and 499, the value will be changed to 500. The default value is 0, which indicates an infinite time-out period. Specifying -1 also indicates an infinite time-out period.</returns>
-      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
-      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
-      <exception cref="T:System.ArgumentOutOfRangeException">The value specified for a set operation is less than -1.</exception>
+      <returns>
+        <see langword="true" /> if the I/O operation is pending. The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will be raised upon completion of the operation.
+
+ <see langword="false" /> if the I/O operation completed synchronously. In this case, The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will not be raised and the <paramref name="e" /> object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.SendTo(System.Byte[],System.Int32,System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint)">
       <summary>Sends the specified number of bytes of data to the specified endpoint, starting at the specified location in the buffer, and using the specified <see cref="T:System.Net.Sockets.SocketFlags" />.</summary>
@@ -2356,25 +2738,35 @@ The socket is not connected to a remote host.</exception>
       <param name="size">The number of bytes to send.</param>
       <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
       <param name="remoteEP">The <see cref="T:System.Net.EndPoint" /> that represents the destination location for the data.</param>
-      <returns>The number of bytes sent.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="buffer" /> is <see langword="null" />.
--or-
-<paramref name="remoteEP" /> is <see langword="null" />.</exception>
+
+ -or-
+
+ <paramref name="remoteEP" /> is <see langword="null" />.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">
         <paramref name="offset" /> is less than 0.
--or-
-<paramref name="offset" /> is greater than the length of <paramref name="buffer" />.
--or-
-<paramref name="size" /> is less than 0.
--or-
-<paramref name="size" /> is greater than the length of <paramref name="buffer" /> minus the value of the <paramref name="offset" /> parameter.</exception>
+
+ -or-
+
+ <paramref name="offset" /> is greater than the length of <paramref name="buffer" />.
+
+ -or-
+
+ <paramref name="size" /> is less than 0.
+
+ -or-
+
+ <paramref name="size" /> is greater than the length of <paramref name="buffer" /> minus the value of the <paramref name="offset" /> parameter.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">
         <paramref name="socketFlags" /> is not a valid combination of values.
--or-
-An operating system error occurs while accessing the <see cref="T:System.Net.Sockets.Socket" />.</exception>
+
+ -or-
+
+ An operating system error occurs while accessing the <see cref="T:System.Net.Sockets.Socket" />.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
       <exception cref="T:System.Security.SecurityException">A caller in the call stack does not have the required permissions.</exception>
+      <returns>The number of bytes sent.</returns>
     </member>
     <member name="M:System.Net.Sockets.Socket.SendTo(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags,System.Net.EndPoint)">
       <summary>Sends the specified number of bytes of data to the specified endpoint using the specified <see cref="T:System.Net.Sockets.SocketFlags" />.</summary>
@@ -2382,97 +2774,293 @@ An operating system error occurs while accessing the <see cref="T:System.Net.Soc
       <param name="size">The number of bytes to send.</param>
       <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
       <param name="remoteEP">The <see cref="T:System.Net.EndPoint" /> that represents the destination location for the data.</param>
-      <returns>The number of bytes sent.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="buffer" /> is <see langword="null" />.
--or-
-<paramref name="remoteEP" /> is <see langword="null" />.</exception>
+
+ -or-
+
+ <paramref name="remoteEP" /> is <see langword="null" />.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">The specified <paramref name="size" /> exceeds the size of <paramref name="buffer" />.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>The number of bytes sent.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.Socket.SendTo(System.Byte[],System.Net.EndPoint)">
+      <summary>Sends data to the specified endpoint.</summary>
+      <param name="buffer">An array of type <see cref="T:System.Byte" /> that contains the data to be sent.</param>
+      <param name="remoteEP">The <see cref="T:System.Net.EndPoint" /> that represents the destination for the data.</param>
+      <exception cref="T:System.ArgumentNullException">
+        <paramref name="buffer" /> is <see langword="null" />.
+
+ -or-
+
+ <paramref name="remoteEP" /> is <see langword="null" />.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>The number of bytes sent.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.Socket.SendTo(System.Byte[],System.Net.Sockets.SocketFlags,System.Net.EndPoint)">
+      <summary>Sends data to a specific endpoint using the specified <see cref="T:System.Net.Sockets.SocketFlags" />.</summary>
+      <param name="buffer">An array of type <see cref="T:System.Byte" /> that contains the data to be sent.</param>
+      <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
+      <param name="remoteEP">The <see cref="T:System.Net.EndPoint" /> that represents the destination location for the data.</param>
+      <exception cref="T:System.ArgumentNullException">
+        <paramref name="buffer" /> is <see langword="null" />.
+
+ -or-
+
+ <paramref name="remoteEP" /> is <see langword="null" />.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>The number of bytes sent.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.Socket.SendTo(System.ReadOnlySpan{System.Byte},System.Net.EndPoint)">
+      <summary>Sends data to the specified endpoint.</summary>
+      <param name="buffer">A span of bytes that contains the data to be sent.</param>
+      <param name="remoteEP">The <see cref="T:System.Net.EndPoint" /> that represents the destination for the data.</param>
+      <exception cref="T:System.ArgumentNullException">
+        <c>remoteEP</c> is <see langword="null" />.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>The number of bytes sent.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.Socket.SendTo(System.ReadOnlySpan{System.Byte},System.Net.Sockets.SocketFlags,System.Net.EndPoint)">
+      <summary>Sends data to a specific endpoint using the specified <see cref="T:System.Net.Sockets.SocketFlags" />.</summary>
+      <param name="buffer">A span of bytes that contains the data to be sent.</param>
+      <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
+      <param name="remoteEP">The <see cref="T:System.Net.EndPoint" /> that represents the destination for the data.</param>
+      <exception cref="T:System.ArgumentNullException">
+        <c>remoteEP</c> is <see langword="null" />.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>The number of bytes sent.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.Socket.SendToAsync(System.ArraySegment{System.Byte},System.Net.Sockets.SocketFlags,System.Net.EndPoint)">
+      <summary>Sends data to the specified remote host.</summary>
+      <param name="buffer">The buffer for the data to send.</param>
+      <param name="socketFlags">A bitwise combination of SocketFlags values that will be used when sending the data.</param>
+      <param name="remoteEP">The remote host to which to send the data.</param>
+      <returns>An asynchronous task that completes with the number of bytes sent.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.Socket.SendToAsync(System.Net.Sockets.SocketAsyncEventArgs)">
+      <summary>Sends data asynchronously to a specific remote host.</summary>
+      <param name="e">The <see cref="T:System.Net.Sockets.SocketAsyncEventArgs" /> object to use for this asynchronous socket operation.</param>
+      <exception cref="T:System.ArgumentNullException">The <see cref="P:System.Net.Sockets.SocketAsyncEventArgs.RemoteEndPoint" /> cannot be null.</exception>
+      <exception cref="T:System.InvalidOperationException">A socket operation was already in progress using the <see cref="T:System.Net.Sockets.SocketAsyncEventArgs" /> object specified in the <paramref name="e" /> parameter.</exception>
+      <exception cref="T:System.NotSupportedException">Windows XP or later is required for this method.</exception>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">The protocol specified is connection-oriented, but the <see cref="T:System.Net.Sockets.Socket" /> is not yet connected.</exception>
+      <returns>
+        <see langword="true" /> if the I/O operation is pending. The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will be raised upon completion of the operation.
+
+ <see langword="false" /> if the I/O operation completed synchronously. In this case, The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will not be raised and the <paramref name="e" /> object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.Socket.SendToAsync(System.ReadOnlyMemory{System.Byte},System.Net.Sockets.SocketFlags,System.Net.EndPoint,System.Threading.CancellationToken)">
+      <summary>Sends data to the specified remote host.</summary>
+      <param name="buffer">The buffer for the data to send.</param>
+      <param name="socketFlags">A bitwise combination of SocketFlags values that will be used when sending the data.</param>
+      <param name="remoteEP">The remote host to which to send the data.</param>
+      <param name="cancellationToken">A cancellation token that can be used to cancel the asynchronous operation.</param>
+      <returns>An asynchronous task that completes with the number of bytes sent.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.Socket.SetIPProtectionLevel(System.Net.Sockets.IPProtectionLevel)">
+      <summary>Sets the IP protection level on a socket.</summary>
+      <param name="level">The IP protection level to set on this socket.</param>
+      <exception cref="T:System.ArgumentException">The <paramref name="level" /> argument is set to <see cref="F:System.Net.Sockets.IPProtectionLevel.Unspecified" />.</exception>
+      <exception cref="T:System.NotSupportedException">The socket is not in the <see cref="F:System.Net.Sockets.AddressFamily.InterNetworkV6" /> or <see cref="F:System.Net.Sockets.AddressFamily.InterNetwork" /> address families.</exception>
+    </member>
+    <member name="M:System.Net.Sockets.Socket.SetRawSocketOption(System.Int32,System.Int32,System.ReadOnlySpan{System.Byte})">
+      <summary>Sets a socket option value using platform-specific level and name identifiers.</summary>
+      <param name="optionLevel">The platform-defined option level.</param>
+      <param name="optionName">The platform-defined option name.</param>
+      <param name="optionValue">The value to which the option should be set.</param>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+    </member>
+    <member name="M:System.Net.Sockets.Socket.SetSocketOption(System.Net.Sockets.SocketOptionLevel,System.Net.Sockets.SocketOptionName,System.Boolean)">
+      <summary>Sets the specified <see cref="T:System.Net.Sockets.Socket" /> option to the specified <see cref="T:System.Boolean" /> value.</summary>
+      <param name="optionLevel">One of the <see cref="T:System.Net.Sockets.SocketOptionLevel" /> values.</param>
+      <param name="optionName">One of the <see cref="T:System.Net.Sockets.SocketOptionName" /> values.</param>
+      <param name="optionValue">The value of the option, represented as a <see cref="T:System.Boolean" />.</param>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> object has been closed.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+    </member>
+    <member name="M:System.Net.Sockets.Socket.SetSocketOption(System.Net.Sockets.SocketOptionLevel,System.Net.Sockets.SocketOptionName,System.Byte[])">
+      <summary>Sets the specified <see cref="T:System.Net.Sockets.Socket" /> option to the specified value, represented as a byte array.</summary>
+      <param name="optionLevel">One of the <see cref="T:System.Net.Sockets.SocketOptionLevel" /> values.</param>
+      <param name="optionName">One of the <see cref="T:System.Net.Sockets.SocketOptionName" /> values.</param>
+      <param name="optionValue">An array of type <see cref="T:System.Byte" /> that represents the value of the option.</param>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+    </member>
+    <member name="M:System.Net.Sockets.Socket.SetSocketOption(System.Net.Sockets.SocketOptionLevel,System.Net.Sockets.SocketOptionName,System.Int32)">
+      <summary>Sets the specified <see cref="T:System.Net.Sockets.Socket" /> option to the specified integer value.</summary>
+      <param name="optionLevel">One of the <see cref="T:System.Net.Sockets.SocketOptionLevel" /> values.</param>
+      <param name="optionName">One of the <see cref="T:System.Net.Sockets.SocketOptionName" /> values.</param>
+      <param name="optionValue">A value of the option.</param>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+    </member>
+    <member name="M:System.Net.Sockets.Socket.SetSocketOption(System.Net.Sockets.SocketOptionLevel,System.Net.Sockets.SocketOptionName,System.Object)">
+      <summary>Sets the specified <see cref="T:System.Net.Sockets.Socket" /> option to the specified value, represented as an object.</summary>
+      <param name="optionLevel">One of the <see cref="T:System.Net.Sockets.SocketOptionLevel" /> values.</param>
+      <param name="optionName">One of the <see cref="T:System.Net.Sockets.SocketOptionName" /> values.</param>
+      <param name="optionValue">A <see cref="T:System.Net.Sockets.LingerOption" /> or <see cref="T:System.Net.Sockets.MulticastOption" /> that contains the value of the option.</param>
+      <exception cref="T:System.ArgumentNullException">
+        <paramref name="optionValue" /> is <see langword="null" />.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+    </member>
+    <member name="M:System.Net.Sockets.Socket.Shutdown(System.Net.Sockets.SocketShutdown)">
+      <summary>Disables sends and receives on a <see cref="T:System.Net.Sockets.Socket" />.</summary>
+      <param name="how">One of the <see cref="T:System.Net.Sockets.SocketShutdown" /> values that specifies the operation that will no longer be allowed.</param>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+    </member>
+    <member name="P:System.Net.Sockets.Socket.AddressFamily">
+      <summary>Gets the address family of the <see cref="T:System.Net.Sockets.Socket" />.</summary>
+      <returns>One of the <see cref="T:System.Net.Sockets.AddressFamily" /> values.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.Socket.Available">
+      <summary>Gets the amount of data that has been received from the network and is available to be read.</summary>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>The number of bytes of data received from the network and available to be read.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.Socket.Blocking">
+      <summary>Gets or sets a value that indicates whether the <see cref="T:System.Net.Sockets.Socket" /> is in blocking mode.</summary>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>
+        <see langword="true" /> if the <see cref="T:System.Net.Sockets.Socket" /> will block; otherwise, <see langword="false" />. The default is <see langword="true" />.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.Socket.Connected">
+      <summary>Gets a value that indicates whether a <see cref="T:System.Net.Sockets.Socket" /> is connected to a remote host as of the last <see cref="Overload:System.Net.Sockets.Socket.Send" /> or <see cref="Overload:System.Net.Sockets.Socket.Receive" /> operation.</summary>
+      <returns>
+        <see langword="true" /> if the <see cref="T:System.Net.Sockets.Socket" /> was connected to a remote resource as of the most recent operation; otherwise, <see langword="false" />.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.Socket.DontFragment">
+      <summary>Gets or sets a value that specifies whether the <see cref="T:System.Net.Sockets.Socket" /> allows Internet Protocol (IP) datagrams to be fragmented.</summary>
+      <exception cref="T:System.NotSupportedException">The socket is not in the <see cref="F:System.Net.Sockets.AddressFamily.InterNetwork" /> family.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>
+        <see langword="true" /> if the <see cref="T:System.Net.Sockets.Socket" /> doesn't allow datagram fragmentation; otherwise, <see langword="false" />. The default is <see langword="true" />.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.Socket.DualMode">
+      <summary>Gets or sets a value that specifies whether the <see cref="T:System.Net.Sockets.Socket" /> is a dual-mode socket used for both IPv4 and IPv6.</summary>
+      <exception cref="T:System.NotSupportedException">The socket is not in the <see cref="F:System.Net.Sockets.AddressFamily.InterNetworkV6" /> address family.</exception>
+      <returns>
+        <see langword="true" /> if the <see cref="T:System.Net.Sockets.Socket" /> is a dual-mode socket; otherwise, <see langword="false" />. The default is <see langword="true" /> if the socket was created by calling the <see cref="M:System.Net.Sockets.Socket.#ctor(System.Net.Sockets.SocketType,System.Net.Sockets.ProtocolType)" /> constructor and the operating system supports IPv6; otherwise, the default is <see langword="false" />.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.Socket.EnableBroadcast">
+      <summary>Gets or sets a <see cref="T:System.Boolean" /> value that specifies whether the <see cref="T:System.Net.Sockets.Socket" /> can send or receive broadcast packets.</summary>
+      <exception cref="T:System.Net.Sockets.SocketException">This option is valid for a datagram socket only.</exception>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>
+        <see langword="true" /> if the <see cref="T:System.Net.Sockets.Socket" /> allows broadcast packets; otherwise, <see langword="false" />. The default is <see langword="false" />.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.Socket.ExclusiveAddressUse">
+      <summary>Gets or sets a <see cref="T:System.Boolean" /> value that specifies whether the <see cref="T:System.Net.Sockets.Socket" /> allows only one process to bind to a port.</summary>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <exception cref="T:System.InvalidOperationException">
+        <see cref="M:System.Net.Sockets.Socket.Bind(System.Net.EndPoint)" /> has been called for this <see cref="T:System.Net.Sockets.Socket" />.</exception>
+      <returns>
+        <see langword="true" /> if the <see cref="T:System.Net.Sockets.Socket" /> allows only one socket to bind to a specific port; otherwise, <see langword="false" />. The default is <see langword="true" /> for Windows Server 2003 and Windows XP Service Pack 2, and <see langword="false" /> for all other versions.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.Socket.Handle">
+      <summary>Gets the operating system handle for the <see cref="T:System.Net.Sockets.Socket" />.</summary>
+      <returns>An <see cref="T:System.IntPtr" /> that represents the operating system handle for the <see cref="T:System.Net.Sockets.Socket" />.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.Socket.IsBound">
+      <summary>Gets a value that indicates whether the <see cref="T:System.Net.Sockets.Socket" /> is bound to a specific local port.</summary>
+      <returns>
+        <see langword="true" /> if the <see cref="T:System.Net.Sockets.Socket" /> is bound to a local port; otherwise, <see langword="false" />.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.Socket.LingerState">
+      <summary>Gets or sets a value that specifies whether the <see cref="T:System.Net.Sockets.Socket" /> will delay closing a socket in an attempt to send all pending data.</summary>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>A <see cref="T:System.Net.Sockets.LingerOption" /> that specifies how to linger while closing a socket.</returns>
     </member>
-    <member name="M:System.Net.Sockets.Socket.SendTo(System.Byte[],System.Net.EndPoint)">
-      <summary>Sends data to the specified endpoint.</summary>
-      <param name="buffer">An array of type <see cref="T:System.Byte" /> that contains the data to be sent.</param>
-      <param name="remoteEP">The <see cref="T:System.Net.EndPoint" /> that represents the destination for the data.</param>
-      <returns>The number of bytes sent.</returns>
-      <exception cref="T:System.ArgumentNullException">
-        <paramref name="buffer" /> is <see langword="null" />.
--or-
-<paramref name="remoteEP" /> is <see langword="null" />.</exception>
+    <member name="P:System.Net.Sockets.Socket.LocalEndPoint">
+      <summary>Gets the local endpoint.</summary>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>The <see cref="T:System.Net.EndPoint" /> that the <see cref="T:System.Net.Sockets.Socket" /> is using for communications.</returns>
     </member>
-    <member name="M:System.Net.Sockets.Socket.SendTo(System.Byte[],System.Net.Sockets.SocketFlags,System.Net.EndPoint)">
-      <summary>Sends data to a specific endpoint using the specified <see cref="T:System.Net.Sockets.SocketFlags" />.</summary>
-      <param name="buffer">An array of type <see cref="T:System.Byte" /> that contains the data to be sent.</param>
-      <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
-      <param name="remoteEP">The <see cref="T:System.Net.EndPoint" /> that represents the destination location for the data.</param>
-      <returns>The number of bytes sent.</returns>
-      <exception cref="T:System.ArgumentNullException">
-        <paramref name="buffer" /> is <see langword="null" />.
--or-
-<paramref name="remoteEP" /> is <see langword="null" />.</exception>
+    <member name="P:System.Net.Sockets.Socket.MulticastLoopback">
+      <summary>Gets or sets a value that specifies whether outgoing multicast packets are delivered to the sending application.</summary>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
-    </member>
-    <member name="M:System.Net.Sockets.Socket.SendToAsync(System.Net.Sockets.SocketAsyncEventArgs)">
-      <summary>Sends data asynchronously to a specific remote host.</summary>
-      <param name="e">The <see cref="T:System.Net.Sockets.SocketAsyncEventArgs" /> object to use for this asynchronous socket operation.</param>
+      <exception cref="T:System.NotSupportedException">The <see cref="T:System.Net.Sockets.Socket" /> is not in the <see cref="F:System.Net.Sockets.AddressFamily.InterNetwork" /> or <see cref="F:System.Net.Sockets.AddressFamily.InterNetworkV6" /> families.</exception>
       <returns>
-        <see langword="true" /> if the I/O operation is pending. The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will be raised upon completion of the operation.
-<see langword="false" /> if the I/O operation completed synchronously. In this case, The <see cref="E:System.Net.Sockets.SocketAsyncEventArgs.Completed" /> event on the <paramref name="e" /> parameter will not be raised and the <paramref name="e" /> object passed as a parameter may be examined immediately after the method call returns to retrieve the result of the operation.</returns>
-      <exception cref="T:System.ArgumentNullException">The <see cref="P:System.Net.Sockets.SocketAsyncEventArgs.RemoteEndPoint" /> cannot be null.</exception>
-      <exception cref="T:System.InvalidOperationException">A socket operation was already in progress using the <see cref="T:System.Net.Sockets.SocketAsyncEventArgs" /> object specified in the <paramref name="e" /> parameter.</exception>
-      <exception cref="T:System.NotSupportedException">Windows XP or later is required for this method.</exception>
+        <see langword="true" /> if the <see cref="T:System.Net.Sockets.Socket" /> receives outgoing multicast packets; otherwise, <see langword="false" />.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.Socket.NoDelay">
+      <summary>Gets or sets a <see cref="T:System.Boolean" /> value that specifies whether the stream <see cref="T:System.Net.Sockets.Socket" /> is using the Nagle algorithm.</summary>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the <see cref="T:System.Net.Sockets.Socket" />.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
-      <exception cref="T:System.Net.Sockets.SocketException">The protocol specified is connection-oriented, but the <see cref="T:System.Net.Sockets.Socket" /> is not yet connected.</exception>
+      <returns>
+        <see langword="false" /> if the <see cref="T:System.Net.Sockets.Socket" /> uses the Nagle algorithm; otherwise, <see langword="true" />. The default is <see langword="false" />.</returns>
     </member>
-    <member name="M:System.Net.Sockets.Socket.SetIPProtectionLevel(System.Net.Sockets.IPProtectionLevel)">
-      <summary>Set the IP protection level on a socket.</summary>
-      <param name="level">The IP protection level to set on this socket.</param>
-      <exception cref="T:System.ArgumentException">The <paramref name="level" /> parameter cannot be <see cref="F:System.Net.Sockets.IPProtectionLevel.Unspecified" />. The IP protection level cannot be set to unspecified.</exception>
-      <exception cref="T:System.NotSupportedException">The <see cref="T:System.Net.Sockets.AddressFamily" /> of the socket must be either <see cref="F:System.Net.Sockets.AddressFamily.InterNetworkV6" /> or <see cref="F:System.Net.Sockets.AddressFamily.InterNetwork" />.</exception>
+    <member name="P:System.Net.Sockets.Socket.OSSupportsIPv4">
+      <summary>Indicates whether the underlying operating system and network adaptors support Internet Protocol version 4 (IPv4).</summary>
+      <returns>
+        <see langword="true" /> if the operating system and network adaptors support the IPv4 protocol; otherwise, <see langword="false" />.</returns>
     </member>
-    <member name="M:System.Net.Sockets.Socket.SetSocketOption(System.Net.Sockets.SocketOptionLevel,System.Net.Sockets.SocketOptionName,System.Boolean)">
-      <summary>Sets the specified <see cref="T:System.Net.Sockets.Socket" /> option to the specified <see cref="T:System.Boolean" /> value.</summary>
-      <param name="optionLevel">One of the <see cref="T:System.Net.Sockets.SocketOptionLevel" /> values.</param>
-      <param name="optionName">One of the <see cref="T:System.Net.Sockets.SocketOptionName" /> values.</param>
-      <param name="optionValue">The value of the option, represented as a <see cref="T:System.Boolean" />.</param>
-      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> object has been closed.</exception>
+    <member name="P:System.Net.Sockets.Socket.OSSupportsIPv6">
+      <summary>Indicates whether the underlying operating system and network adaptors support Internet Protocol version 6 (IPv6).</summary>
+      <returns>
+        <see langword="true" /> if the operating system and network adaptors support the IPv6 protocol; otherwise, <see langword="false" />.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.Socket.OSSupportsUnixDomainSockets">
+      <summary>Indicates whether the underlying operating system support the Unix domain sockets.</summary>
+      <returns>
+        <see langword="true" /> if the operating system support the Unix domain sockets; otherwise, <see langword="false" />.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.Socket.ProtocolType">
+      <summary>Gets the protocol type of the <see cref="T:System.Net.Sockets.Socket" />.</summary>
+      <returns>One of the <see cref="T:System.Net.Sockets.ProtocolType" /> values.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.Socket.ReceiveBufferSize">
+      <summary>Gets or sets a value that specifies the size of the receive buffer of the <see cref="T:System.Net.Sockets.Socket" />.</summary>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <exception cref="T:System.ArgumentOutOfRangeException">The value specified for a set operation is less than 0.</exception>
+      <returns>An <see cref="T:System.Int32" /> that contains the size, in bytes, of the receive buffer. The default is 8192.</returns>
     </member>
-    <member name="M:System.Net.Sockets.Socket.SetSocketOption(System.Net.Sockets.SocketOptionLevel,System.Net.Sockets.SocketOptionName,System.Byte[])">
-      <summary>Sets the specified <see cref="T:System.Net.Sockets.Socket" /> option to the specified value, represented as a byte array.</summary>
-      <param name="optionLevel">One of the <see cref="T:System.Net.Sockets.SocketOptionLevel" /> values.</param>
-      <param name="optionName">One of the <see cref="T:System.Net.Sockets.SocketOptionName" /> values.</param>
-      <param name="optionValue">An array of type <see cref="T:System.Byte" /> that represents the value of the option.</param>
+    <member name="P:System.Net.Sockets.Socket.ReceiveTimeout">
+      <summary>Gets or sets a value that specifies the amount of time after which a synchronous <see cref="Overload:System.Net.Sockets.Socket.Receive" /> call will time out.</summary>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <exception cref="T:System.ArgumentOutOfRangeException">The value specified for a set operation is less than -1.</exception>
+      <returns>The time-out value, in milliseconds. The default value is 0, which indicates an infinite time-out period. Specifying -1 also indicates an infinite time-out period.</returns>
     </member>
-    <member name="M:System.Net.Sockets.Socket.SetSocketOption(System.Net.Sockets.SocketOptionLevel,System.Net.Sockets.SocketOptionName,System.Int32)">
-      <summary>Sets the specified <see cref="T:System.Net.Sockets.Socket" /> option to the specified integer value.</summary>
-      <param name="optionLevel">One of the <see cref="T:System.Net.Sockets.SocketOptionLevel" /> values.</param>
-      <param name="optionName">One of the <see cref="T:System.Net.Sockets.SocketOptionName" /> values.</param>
-      <param name="optionValue">A value of the option.</param>
+    <member name="P:System.Net.Sockets.Socket.RemoteEndPoint">
+      <summary>Gets the remote endpoint.</summary>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>The <see cref="T:System.Net.EndPoint" /> with which the <see cref="T:System.Net.Sockets.Socket" /> is communicating.</returns>
     </member>
-    <member name="M:System.Net.Sockets.Socket.SetSocketOption(System.Net.Sockets.SocketOptionLevel,System.Net.Sockets.SocketOptionName,System.Object)">
-      <summary>Sets the specified <see cref="T:System.Net.Sockets.Socket" /> option to the specified value, represented as an object.</summary>
-      <param name="optionLevel">One of the <see cref="T:System.Net.Sockets.SocketOptionLevel" /> values.</param>
-      <param name="optionName">One of the <see cref="T:System.Net.Sockets.SocketOptionName" /> values.</param>
-      <param name="optionValue">A <see cref="T:System.Net.Sockets.LingerOption" /> or <see cref="T:System.Net.Sockets.MulticastOption" /> that contains the value of the option.</param>
-      <exception cref="T:System.ArgumentNullException">
-        <paramref name="optionValue" /> is <see langword="null" />.</exception>
+    <member name="P:System.Net.Sockets.Socket.SafeHandle">
+      <summary>Gets a <see cref="T:System.Net.Sockets.SafeSocketHandle" /> that represents the socket handle that the current <see cref="T:System.Net.Sockets.Socket" /> object encapsulates.</summary>
+      <returns>A socket handle exposed in a safe manner for the socket that the current <see cref="T:System.Net.Sockets.Socket" /> object encapsulates.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.Socket.SendBufferSize">
+      <summary>Gets or sets a value that specifies the size of the send buffer of the <see cref="T:System.Net.Sockets.Socket" />.</summary>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <exception cref="T:System.ArgumentOutOfRangeException">The value specified for a set operation is less than 0.</exception>
+      <returns>An <see cref="T:System.Int32" /> that contains the size, in bytes, of the send buffer. The default is 8192.</returns>
     </member>
-    <member name="M:System.Net.Sockets.Socket.Shutdown(System.Net.Sockets.SocketShutdown)">
-      <summary>Disables sends and receives on a <see cref="T:System.Net.Sockets.Socket" />.</summary>
-      <param name="how">One of the <see cref="T:System.Net.Sockets.SocketShutdown" /> values that specifies the operation that will no longer be allowed.</param>
+    <member name="P:System.Net.Sockets.Socket.SendTimeout">
+      <summary>Gets or sets a value that specifies the amount of time after which a synchronous <see cref="Overload:System.Net.Sockets.Socket.Send" /> call will time out.</summary>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <exception cref="T:System.ArgumentOutOfRangeException">The value specified for a set operation is less than -1.</exception>
+      <returns>The time-out value, in milliseconds. If you set the property with a value between 1 and 499, the value will be changed to 500. The default value is 0, which indicates an infinite time-out period. Specifying -1 also indicates an infinite time-out period.</returns>
     </member>
     <member name="P:System.Net.Sockets.Socket.SocketType">
       <summary>Gets the type of the <see cref="T:System.Net.Sockets.Socket" />.</summary>
@@ -2490,25 +3078,60 @@ An operating system error occurs while accessing the <see cref="T:System.Net.Soc
     </member>
     <member name="P:System.Net.Sockets.Socket.Ttl">
       <summary>Gets or sets a value that specifies the Time To Live (TTL) value of Internet Protocol (IP) packets sent by the <see cref="T:System.Net.Sockets.Socket" />.</summary>
-      <returns>The TTL value.</returns>
-      <exception cref="T:System.ArgumentOutOfRangeException">The TTL value can't be set to a negative number.</exception>
-      <exception cref="T:System.NotSupportedException">This property can be set only for sockets in the <see cref="F:System.Net.Sockets.AddressFamily.InterNetwork" /> or <see cref="F:System.Net.Sockets.AddressFamily.InterNetworkV6" /> families.</exception>
+      <exception cref="T:System.ArgumentOutOfRangeException">The TTL value is a negative number.</exception>
+      <exception cref="T:System.NotSupportedException">The socket is not in the <see cref="F:System.Net.Sockets.AddressFamily.InterNetwork" /> or <see cref="F:System.Net.Sockets.AddressFamily.InterNetworkV6" /> families.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket. This error is also returned when an attempt was made to set TTL to a value higher than 255.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>The TTL value.</returns>
     </member>
     <member name="P:System.Net.Sockets.Socket.UseOnlyOverlappedIO">
-      <summary>Specifies whether the socket should only use Overlapped I/O mode.</summary>
-      <returns>
-        <see langword="true" /> if the <see cref="T:System.Net.Sockets.Socket" /> uses only overlapped I/O; otherwise, <see langword="false" />. The default is <see langword="false" />.</returns>
+      <summary>Gets or sets a value that specifies whether the socket should only use Overlapped I/O mode. On .NET 5+ (including .NET Core versions), the value is always <see langword="false" />.</summary>
       <exception cref="T:System.InvalidOperationException">The socket has been bound to a completion port.</exception>
+      <returns>
+        <see langword="true" /> on .NET Framework if the <see cref="T:System.Net.Sockets.Socket" /> uses only overlapped I/O; otherwise, <see langword="false" />. The default is <see langword="false" />.</returns>
     </member>
     <member name="T:System.Net.Sockets.SocketAsyncEventArgs">
       <summary>Represents an asynchronous socket operation.</summary>
     </member>
+    <member name="E:System.Net.Sockets.SocketAsyncEventArgs.Completed">
+      <summary>The event used to complete an asynchronous operation.</summary>
+    </member>
     <member name="M:System.Net.Sockets.SocketAsyncEventArgs.#ctor">
       <summary>Creates an empty <see cref="T:System.Net.Sockets.SocketAsyncEventArgs" /> instance.</summary>
       <exception cref="T:System.NotSupportedException">The platform is not supported.</exception>
     </member>
+    <member name="M:System.Net.Sockets.SocketAsyncEventArgs.#ctor(System.Boolean)">
+      <summary>Initializes the <see cref="T:System.Net.Sockets.SocketAsyncEventArgs" />.</summary>
+      <param name="unsafeSuppressExecutionContextFlow">Whether to disable the capturing and flow of execution context. Execution context flow should only be disabled if it's handled by higher layers.</param>
+    </member>
+    <member name="M:System.Net.Sockets.SocketAsyncEventArgs.Dispose">
+      <summary>Releases the unmanaged resources used by the <see cref="T:System.Net.Sockets.SocketAsyncEventArgs" /> instance and optionally disposes of the managed resources.</summary>
+    </member>
+    <member name="M:System.Net.Sockets.SocketAsyncEventArgs.Finalize">
+      <summary>Frees resources used by the <see cref="T:System.Net.Sockets.SocketAsyncEventArgs" /> class.</summary>
+    </member>
+    <member name="M:System.Net.Sockets.SocketAsyncEventArgs.OnCompleted(System.Net.Sockets.SocketAsyncEventArgs)">
+      <summary>Represents a method that is called when an asynchronous operation completes.</summary>
+      <param name="e">The event that is signaled.</param>
+    </member>
+    <member name="M:System.Net.Sockets.SocketAsyncEventArgs.SetBuffer(System.Byte[],System.Int32,System.Int32)">
+      <summary>Sets the data buffer to use with an asynchronous socket method.</summary>
+      <param name="buffer">The data buffer to use with an asynchronous socket method.</param>
+      <param name="offset">The offset, in bytes, in the data buffer where the operation starts.</param>
+      <param name="count">The maximum amount of data, in bytes, to send or receive in the buffer.</param>
+      <exception cref="T:System.ArgumentException">There are ambiguous buffers specified. This exception occurs if the <see cref="P:System.Net.Sockets.SocketAsyncEventArgs.Buffer" /> property is also not null and the <see cref="P:System.Net.Sockets.SocketAsyncEventArgs.BufferList" /> property is also not null.</exception>
+      <exception cref="T:System.ArgumentOutOfRangeException">An argument was out of range. This exception occurs if the <paramref name="offset" /> parameter is less than zero or greater than the length of the array in the <see cref="P:System.Net.Sockets.SocketAsyncEventArgs.Buffer" /> property. This exception also occurs if the <paramref name="count" /> parameter is less than zero or greater than the length of the array in the <see cref="P:System.Net.Sockets.SocketAsyncEventArgs.Buffer" /> property minus the <paramref name="offset" /> parameter.</exception>
+    </member>
+    <member name="M:System.Net.Sockets.SocketAsyncEventArgs.SetBuffer(System.Int32,System.Int32)">
+      <summary>Sets the data buffer to use with an asynchronous socket method.</summary>
+      <param name="offset">The offset, in bytes, in the data buffer where the operation starts.</param>
+      <param name="count">The maximum amount of data, in bytes, to send or receive in the buffer.</param>
+      <exception cref="T:System.ArgumentOutOfRangeException">An argument was out of range. This exception occurs if the <paramref name="offset" /> parameter is less than zero or greater than the length of the array in the <see cref="P:System.Net.Sockets.SocketAsyncEventArgs.Buffer" /> property. This exception also occurs if the <paramref name="count" /> parameter is less than zero or greater than the length of the array in the <see cref="P:System.Net.Sockets.SocketAsyncEventArgs.Buffer" /> property minus the <paramref name="offset" /> parameter.</exception>
+    </member>
+    <member name="M:System.Net.Sockets.SocketAsyncEventArgs.SetBuffer(System.Memory{System.Byte})">
+      <summary>Sets the region of memory to use as a buffer with an asynchronous socket method.</summary>
+      <param name="buffer">The region of memory to use as a buffer with an asynchronous socket method.</param>
+    </member>
     <member name="P:System.Net.Sockets.SocketAsyncEventArgs.AcceptSocket">
       <summary>Gets or sets the socket to use or the socket created for accepting a connection with an asynchronous socket method.</summary>
       <returns>The <see cref="T:System.Net.Sockets.Socket" /> to use or the socket created for accepting a connection with an asynchronous socket method.</returns>
@@ -2519,16 +3142,13 @@ An operating system error occurs while accessing the <see cref="T:System.Net.Soc
     </member>
     <member name="P:System.Net.Sockets.SocketAsyncEventArgs.BufferList">
       <summary>Gets or sets an array of data buffers to use with an asynchronous socket method.</summary>
-      <returns>An <see cref="T:System.Collections.IList" /> that represents an array of data buffers to use with an asynchronous socket method.</returns>
       <exception cref="T:System.ArgumentException">There are ambiguous buffers specified on a set operation. This exception occurs if the <see cref="P:System.Net.Sockets.SocketAsyncEventArgs.Buffer" /> property has been set to a non-null value and an attempt was made to set the <see cref="P:System.Net.Sockets.SocketAsyncEventArgs.BufferList" /> property to a non-null value.</exception>
+      <returns>An <see cref="T:System.Collections.IList" /> that represents an array of data buffers to use with an asynchronous socket method.</returns>
     </member>
     <member name="P:System.Net.Sockets.SocketAsyncEventArgs.BytesTransferred">
       <summary>Gets the number of bytes transferred in the socket operation.</summary>
       <returns>An <see cref="T:System.Int32" /> that contains the number of bytes transferred in the socket operation.</returns>
     </member>
-    <member name="E:System.Net.Sockets.SocketAsyncEventArgs.Completed">
-      <summary>The event used to complete an asynchronous operation.</summary>
-    </member>
     <member name="P:System.Net.Sockets.SocketAsyncEventArgs.ConnectByNameError">
       <summary>Gets the exception in the case of a connection failure when a <see cref="T:System.Net.DnsEndPoint" /> was used.</summary>
       <returns>An <see cref="T:System.Exception" /> that indicates the cause of the connection error when a <see cref="T:System.Net.DnsEndPoint" /> was specified for the <see cref="P:System.Net.Sockets.SocketAsyncEventArgs.RemoteEndPoint" /> property.</returns>
@@ -2545,25 +3165,18 @@ An operating system error occurs while accessing the <see cref="T:System.Net.Soc
       <summary>Gets or sets a value that specifies if socket can be reused after a disconnect operation.</summary>
       <returns>A <see cref="T:System.Boolean" /> that specifies if socket can be reused after a disconnect operation.</returns>
     </member>
-    <member name="M:System.Net.Sockets.SocketAsyncEventArgs.Dispose">
-      <summary>Releases the unmanaged resources used by the <see cref="T:System.Net.Sockets.SocketAsyncEventArgs" /> instance and optionally disposes of the managed resources.</summary>
-    </member>
-    <member name="M:System.Net.Sockets.SocketAsyncEventArgs.Finalize">
-      <summary>Frees resources used by the <see cref="T:System.Net.Sockets.SocketAsyncEventArgs" /> class.</summary>
-    </member>
     <member name="P:System.Net.Sockets.SocketAsyncEventArgs.LastOperation">
       <summary>Gets the type of socket operation most recently performed with this context object.</summary>
       <returns>A <see cref="T:System.Net.Sockets.SocketAsyncOperation" /> instance that indicates the type of socket operation most recently performed with this context object.</returns>
     </member>
-    <member name="P:System.Net.Sockets.SocketAsyncEventArgs.MemoryBuffer" />
+    <member name="P:System.Net.Sockets.SocketAsyncEventArgs.MemoryBuffer">
+      <summary>Gets the region of memory to use as a buffer with an asynchronous socket method.</summary>
+      <returns>A region of memory that represents the data buffer to use with an asynchronous socket method.</returns>
+    </member>
     <member name="P:System.Net.Sockets.SocketAsyncEventArgs.Offset">
       <summary>Gets the offset, in bytes, into the data buffer referenced by the <see cref="P:System.Net.Sockets.SocketAsyncEventArgs.Buffer" /> property.</summary>
       <returns>An <see cref="T:System.Int32" /> that contains the offset, in bytes, into the data buffer referenced by the <see cref="P:System.Net.Sockets.SocketAsyncEventArgs.Buffer" /> property.</returns>
     </member>
-    <member name="M:System.Net.Sockets.SocketAsyncEventArgs.OnCompleted(System.Net.Sockets.SocketAsyncEventArgs)">
-      <summary>Represents a method that is called when an asynchronous operation completes.</summary>
-      <param name="e">The event that is signaled.</param>
-    </member>
     <member name="P:System.Net.Sockets.SocketAsyncEventArgs.ReceiveMessageFromPacketInfo">
       <summary>Gets the IP address and interface of a received packet.</summary>
       <returns>An <see cref="T:System.Net.Sockets.IPPacketInformation" /> instance that contains the destination IP address and interface of a received packet.</returns>
@@ -2584,23 +3197,6 @@ An operating system error occurs while accessing the <see cref="T:System.Net.Soc
       <summary>Gets or sets the size, in bytes, of the data block used in the send operation.</summary>
       <returns>An <see cref="T:System.Int32" /> that contains the size, in bytes, of the data block used in the send operation.</returns>
     </member>
-    <member name="M:System.Net.Sockets.SocketAsyncEventArgs.SetBuffer(System.Byte[],System.Int32,System.Int32)">
-      <summary>Sets the data buffer to use with an asynchronous socket method.</summary>
-      <param name="buffer">The data buffer to use with an asynchronous socket method.</param>
-      <param name="offset">The offset, in bytes, in the data buffer where the operation starts.</param>
-      <param name="count">The maximum amount of data, in bytes, to send or receive in the buffer.</param>
-      <exception cref="T:System.ArgumentException">There are ambiguous buffers specified. This exception occurs if the <see cref="P:System.Net.Sockets.SocketAsyncEventArgs.Buffer" /> property is also not null and the <see cref="P:System.Net.Sockets.SocketAsyncEventArgs.BufferList" /> property is also not null.</exception>
-      <exception cref="T:System.ArgumentOutOfRangeException">An argument was out of range. This exception occurs if the <paramref name="offset" /> parameter is less than zero or greater than the length of the array in the <see cref="P:System.Net.Sockets.SocketAsyncEventArgs.Buffer" /> property. This exception also occurs if the <paramref name="count" /> parameter is less than zero or greater than the length of the array in the <see cref="P:System.Net.Sockets.SocketAsyncEventArgs.Buffer" /> property minus the <paramref name="offset" /> parameter.</exception>
-    </member>
-    <member name="M:System.Net.Sockets.SocketAsyncEventArgs.SetBuffer(System.Int32,System.Int32)">
-      <summary>Sets the data buffer to use with an asynchronous socket method.</summary>
-      <param name="offset">The offset, in bytes, in the data buffer where the operation starts.</param>
-      <param name="count">The maximum amount of data, in bytes, to send or receive in the buffer.</param>
-      <exception cref="T:System.ArgumentOutOfRangeException">An argument was out of range. This exception occurs if the <paramref name="offset" /> parameter is less than zero or greater than the length of the array in the <see cref="P:System.Net.Sockets.SocketAsyncEventArgs.Buffer" /> property. This exception also occurs if the <paramref name="count" /> parameter is less than zero or greater than the length of the array in the <see cref="P:System.Net.Sockets.SocketAsyncEventArgs.Buffer" /> property minus the <paramref name="offset" /> parameter.</exception>
-    </member>
-    <member name="M:System.Net.Sockets.SocketAsyncEventArgs.SetBuffer(System.Memory{System.Byte})">
-      <param name="buffer" />
-    </member>
     <member name="P:System.Net.Sockets.SocketAsyncEventArgs.SocketError">
       <summary>Gets or sets the result of the asynchronous socket operation.</summary>
       <returns>A <see cref="T:System.Net.Sockets.SocketError" /> that represents the result of the asynchronous socket operation.</returns>
@@ -2786,7 +3382,7 @@ An operating system error occurs while accessing the <see cref="T:System.Net.Soc
       <summary>Specifies the IP options to be inserted into outgoing datagrams.</summary>
     </member>
     <member name="F:System.Net.Sockets.SocketOptionName.IPProtectionLevel">
-      <summary>Enables restriction of a IPv6 socket to a specified scope, such as addresses with the same link local or site local prefix.This socket option enables applications to place access restrictions on IPv6 sockets. Such restrictions enable an application running on a private LAN to simply and robustly harden itself against external attacks. This socket option widens or narrows the scope of a listening socket, enabling unrestricted access from public and private users when appropriate, or restricting access only to the same site, as required. This socket option has defined protection levels specified in the <see cref="T:System.Net.Sockets.IPProtectionLevel" /> enumeration.</summary>
+      <summary>Enables restriction of a IPv6 socket to a specified scope, such as addresses with the same link local or site local prefix. This socket option enables applications to place access restrictions on IPv6 sockets. Such restrictions enable an application running on a private LAN to simply and robustly harden itself against external attacks. This socket option widens or narrows the scope of a listening socket, enabling unrestricted access from public and private users when appropriate, or restricting access only to the same site, as required. This socket option has defined protection levels specified in the <see cref="T:System.Net.Sockets.IPProtectionLevel" /> enumeration.</summary>
     </member>
     <member name="F:System.Net.Sockets.SocketOptionName.IpTimeToLive">
       <summary>Set the IP header Time-to-Live field.</summary>
@@ -2931,11 +3527,27 @@ An operating system error occurs while accessing the <see cref="T:System.Net.Soc
       <param name="remoteEP">An EndPoint that represents the remote device.</param>
       <returns>An asynchronous Task.</returns>
     </member>
+    <member name="M:System.Net.Sockets.SocketTaskExtensions.ConnectAsync(System.Net.Sockets.Socket,System.Net.EndPoint,System.Threading.CancellationToken)">
+      <summary>Establishes a connection to a remote host.</summary>
+      <param name="socket">The socket that is used for establishing a connection.</param>
+      <param name="remoteEP">An EndPoint that represents the remote device.</param>
+      <param name="cancellationToken">A cancellation token that can be used to signal the asynchronous operation should be canceled.</param>
+      <returns>A task that represents the asynchronous connection operation.</returns>
+    </member>
     <member name="M:System.Net.Sockets.SocketTaskExtensions.ConnectAsync(System.Net.Sockets.Socket,System.Net.IPAddress,System.Int32)">
       <summary>Establishes a connection to a remote host. The host is specified by an IP address and a port number.</summary>
       <param name="socket">The socket to perform the connect operation on.</param>
       <param name="address">The IP address of the remote host.</param>
       <param name="port">The port number of the remote host.</param>
+      <returns>A task that represents an asynchronous connection operation.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.SocketTaskExtensions.ConnectAsync(System.Net.Sockets.Socket,System.Net.IPAddress,System.Int32,System.Threading.CancellationToken)">
+      <summary>Establishes a connection to a remote host, which is specified by an IP address and a port number.</summary>
+      <param name="socket">The socket to perform the connect operation on.</param>
+      <param name="address">The IP address of the remote host.</param>
+      <param name="port">The port number of the remote host.</param>
+      <param name="cancellationToken">A cancellation token that can be used to signal the asynchronous operation should be canceled.</param>
+      <returns>A task that represents the asynchronous connection operation.</returns>
     </member>
     <member name="M:System.Net.Sockets.SocketTaskExtensions.ConnectAsync(System.Net.Sockets.Socket,System.Net.IPAddress[],System.Int32)">
       <summary>Establishes a connection to a remote host. The host is specified by an array of IP addresses and a port number.</summary>
@@ -2944,6 +3556,14 @@ An operating system error occurs while accessing the <see cref="T:System.Net.Soc
       <param name="port">The port number of the remote host.</param>
       <returns>A task that represents the asynchronous connect operation.</returns>
     </member>
+    <member name="M:System.Net.Sockets.SocketTaskExtensions.ConnectAsync(System.Net.Sockets.Socket,System.Net.IPAddress[],System.Int32,System.Threading.CancellationToken)">
+      <summary>Establishes a connection to a remote host, which is specified by an array of IP addresses and a port number.</summary>
+      <param name="socket">The socket that the connect operation is performed on.</param>
+      <param name="addresses">The IP addresses of the remote host.</param>
+      <param name="port">The port number of the remote host.</param>
+      <param name="cancellationToken">A cancellation token that can be used to signal the asynchronous operation should be canceled.</param>
+      <returns>A task that represents the asynchronous connection operation.</returns>
+    </member>
     <member name="M:System.Net.Sockets.SocketTaskExtensions.ConnectAsync(System.Net.Sockets.Socket,System.String,System.Int32)">
       <summary>Establishes a connection to a remote host. The host is specified by a host name and a port number.</summary>
       <param name="socket">The socket to perform the connect operation on.</param>
@@ -2951,6 +3571,14 @@ An operating system error occurs while accessing the <see cref="T:System.Net.Soc
       <param name="port">The port number of the remote host.</param>
       <returns>An asynchronous task.</returns>
     </member>
+    <member name="M:System.Net.Sockets.SocketTaskExtensions.ConnectAsync(System.Net.Sockets.Socket,System.String,System.Int32,System.Threading.CancellationToken)">
+      <summary>Establishes a connection to a remote host, which is specified by a host name and a port number.</summary>
+      <param name="socket">The socket to perform the connect operation on.</param>
+      <param name="host">The name of the remote host.</param>
+      <param name="port">The port number of the remote host.</param>
+      <param name="cancellationToken">A cancellation token that can be used to signal the asynchronous operation should be canceled.</param>
+      <returns>A task that represents an asynchronous connection operation.</returns>
+    </member>
     <member name="M:System.Net.Sockets.SocketTaskExtensions.ReceiveAsync(System.Net.Sockets.Socket,System.ArraySegment{System.Byte},System.Net.Sockets.SocketFlags)">
       <summary>Receives data from a connected socket.</summary>
       <param name="socket">The socket to perform the receive operation on.</param>
@@ -2966,10 +3594,12 @@ An operating system error occurs while accessing the <see cref="T:System.Net.Soc
       <returns>A task that represents the asynchronous receive operation. The value of the <paramref name="TResult" /> parameter contains the number of bytes received.</returns>
     </member>
     <member name="M:System.Net.Sockets.SocketTaskExtensions.ReceiveAsync(System.Net.Sockets.Socket,System.Memory{System.Byte},System.Net.Sockets.SocketFlags,System.Threading.CancellationToken)">
-      <param name="socket" />
-      <param name="buffer" />
-      <param name="socketFlags" />
-      <param name="cancellationToken" />
+      <summary>Receives data from a connected socket.</summary>
+      <param name="socket">The socket to perform the receive operation on.</param>
+      <param name="buffer">A region of memory that is the storage location for the received data.</param>
+      <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
+      <param name="cancellationToken">A cancellation token that can be used to signal the asynchronous operation should be canceled.</param>
+      <returns>A task that completes with the number of bytes received, or 0 if the end of the stream has been reached.</returns>
     </member>
     <member name="M:System.Net.Sockets.SocketTaskExtensions.ReceiveFromAsync(System.Net.Sockets.Socket,System.ArraySegment{System.Byte},System.Net.Sockets.SocketFlags,System.Net.EndPoint)">
       <summary>Receives data from a specified network device.</summary>
@@ -3002,10 +3632,12 @@ An operating system error occurs while accessing the <see cref="T:System.Net.Soc
       <returns>An asynchronous task that completes with number of bytes sent to the socket if the operation was successful. Otherwise, the task will complete with an invalid socket error.</returns>
     </member>
     <member name="M:System.Net.Sockets.SocketTaskExtensions.SendAsync(System.Net.Sockets.Socket,System.ReadOnlyMemory{System.Byte},System.Net.Sockets.SocketFlags,System.Threading.CancellationToken)">
-      <param name="socket" />
-      <param name="buffer" />
-      <param name="socketFlags" />
-      <param name="cancellationToken" />
+      <summary>Sends data to a connected socket.</summary>
+      <param name="socket">The socket to perform the operation on.</param>
+      <param name="buffer">A region of memory that contains the data to send.</param>
+      <param name="socketFlags">A bitwise combination of the <see cref="T:System.Net.Sockets.SocketFlags" /> values.</param>
+      <param name="cancellationToken">A cancellation token that can be used to signal the asynchronous operation should be canceled.</param>
+      <returns>A task that completes with number of bytes sent to the socket if the operation was successful. Otherwise, the task will complete with an invalid socket error.</returns>
     </member>
     <member name="M:System.Net.Sockets.SocketTaskExtensions.SendToAsync(System.Net.Sockets.Socket,System.ArraySegment{System.Byte},System.Net.Sockets.SocketFlags,System.Net.EndPoint)">
       <summary>Sends data asynchronously to a specific remote host.</summary>
@@ -3050,9 +3682,11 @@ An operating system error occurs while accessing the <see cref="T:System.Net.Soc
     <member name="M:System.Net.Sockets.TcpClient.#ctor(System.Net.Sockets.AddressFamily)">
       <summary>Initializes a new instance of the <see cref="T:System.Net.Sockets.TcpClient" /> class with the specified family.</summary>
       <param name="family">The <see cref="P:System.Net.IPAddress.AddressFamily" /> of the IP protocol.</param>
-      <exception cref="T:System.ArgumentException">The <paramref name="family" /> parameter is not equal to AddressFamily.InterNetwork
--or-
-The <paramref name="family" /> parameter is not equal to AddressFamily.InterNetworkV6</exception>
+      <exception cref="T:System.ArgumentException">The <paramref name="family" /> parameter is not equal to AddressFamily.InterNetwork  
+  
+ -or-  
+  
+ The <paramref name="family" /> parameter is not equal to AddressFamily.InterNetworkV6</exception>
     </member>
     <member name="M:System.Net.Sockets.TcpClient.#ctor(System.String,System.Int32)">
       <summary>Initializes a new instance of the <see cref="T:System.Net.Sockets.TcpClient" /> class and connects to the specified port on the specified host.</summary>
@@ -3062,29 +3696,18 @@ The <paramref name="family" /> parameter is not equal to AddressFamily.InterNetw
       <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="port" /> parameter is not between <see cref="F:System.Net.IPEndPoint.MinPort" /> and <see cref="F:System.Net.IPEndPoint.MaxPort" />.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when accessing the socket.</exception>
     </member>
-    <member name="P:System.Net.Sockets.TcpClient.Active">
-      <summary>Gets or sets a value that indicates whether a connection has been made.</summary>
-      <returns>
-        <see langword="true" /> if the connection has been made; otherwise, <see langword="false" />.</returns>
-    </member>
-    <member name="P:System.Net.Sockets.TcpClient.Available">
-      <summary>Gets the amount of data that has been received from the network and is available to be read.</summary>
-      <returns>The number of bytes of data received from the network and available to be read.</returns>
-      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
-      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
-    </member>
     <member name="M:System.Net.Sockets.TcpClient.BeginConnect(System.Net.IPAddress,System.Int32,System.AsyncCallback,System.Object)">
       <summary>Begins an asynchronous request for a remote host connection. The remote host is specified by an <see cref="T:System.Net.IPAddress" /> and a port number (<see cref="T:System.Int32" />).</summary>
       <param name="address">The <see cref="T:System.Net.IPAddress" /> of the remote host.</param>
       <param name="port">The port number of the remote host.</param>
       <param name="requestCallback">An <see cref="T:System.AsyncCallback" /> delegate that references the method to invoke when the operation is complete.</param>
       <param name="state">A user-defined object that contains information about the connect operation. This object is passed to the <paramref name="requestCallback" /> delegate when the operation is complete.</param>
-      <returns>An <see cref="T:System.IAsyncResult" /> object that references the asynchronous connection.</returns>
       <exception cref="T:System.ArgumentNullException">The <paramref name="address" /> parameter is <see langword="null" />.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
       <exception cref="T:System.Security.SecurityException">A caller higher in the call stack does not have permission for the requested operation.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">The port number is not valid.</exception>
+      <returns>An <see cref="T:System.IAsyncResult" /> object that references the asynchronous connection.</returns>
     </member>
     <member name="M:System.Net.Sockets.TcpClient.BeginConnect(System.Net.IPAddress[],System.Int32,System.AsyncCallback,System.Object)">
       <summary>Begins an asynchronous request for a remote host connection. The remote host is specified by an <see cref="T:System.Net.IPAddress" /> array and a port number (<see cref="T:System.Int32" />).</summary>
@@ -3092,12 +3715,12 @@ The <paramref name="family" /> parameter is not equal to AddressFamily.InterNetw
       <param name="port">The port number of the remote hosts.</param>
       <param name="requestCallback">An <see cref="T:System.AsyncCallback" /> delegate that references the method to invoke when the operation is complete.</param>
       <param name="state">A user-defined object that contains information about the connect operation. This object is passed to the <paramref name="requestCallback" /> delegate when the operation is complete.</param>
-      <returns>An <see cref="T:System.IAsyncResult" /> object that references the asynchronous connection.</returns>
       <exception cref="T:System.ArgumentNullException">The <paramref name="addresses" /> parameter is <see langword="null" />.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
       <exception cref="T:System.Security.SecurityException">A caller higher in the call stack does not have permission for the requested operation.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">The port number is not valid.</exception>
+      <returns>An <see cref="T:System.IAsyncResult" /> object that references the asynchronous connection.</returns>
     </member>
     <member name="M:System.Net.Sockets.TcpClient.BeginConnect(System.String,System.Int32,System.AsyncCallback,System.Object)">
       <summary>Begins an asynchronous request for a remote host connection. The remote host is specified by a host name (<see cref="T:System.String" />) and a port number (<see cref="T:System.Int32" />).</summary>
@@ -3105,16 +3728,12 @@ The <paramref name="family" /> parameter is not equal to AddressFamily.InterNetw
       <param name="port">The port number of the remote host.</param>
       <param name="requestCallback">An <see cref="T:System.AsyncCallback" /> delegate that references the method to invoke when the operation is complete.</param>
       <param name="state">A user-defined object that contains information about the connect operation. This object is passed to the <paramref name="requestCallback" /> delegate when the operation is complete.</param>
-      <returns>An <see cref="T:System.IAsyncResult" /> object that references the asynchronous connection.</returns>
       <exception cref="T:System.ArgumentNullException">The <paramref name="host" /> parameter is <see langword="null" />.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
       <exception cref="T:System.Security.SecurityException">A caller higher in the call stack does not have permission for the requested operation.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">The port number is not valid.</exception>
-    </member>
-    <member name="P:System.Net.Sockets.TcpClient.Client">
-      <summary>Gets or sets the underlying <see cref="T:System.Net.Sockets.Socket" />.</summary>
-      <returns>The underlying network <see cref="T:System.Net.Sockets.Socket" />.</returns>
+      <returns>An <see cref="T:System.IAsyncResult" /> object that references the asynchronous connection.</returns>
     </member>
     <member name="M:System.Net.Sockets.TcpClient.Close">
       <summary>Disposes this <see cref="T:System.Net.Sockets.TcpClient" /> instance and requests that the underlying TCP connection be closed.</summary>
@@ -3161,40 +3780,83 @@ The <paramref name="family" /> parameter is not equal to AddressFamily.InterNetw
       <summary>Connects the client to a remote TCP host using the specified IP address and port number as an asynchronous operation.</summary>
       <param name="address">The <see cref="T:System.Net.IPAddress" /> of the host to which you intend to connect.</param>
       <param name="port">The port number to which you intend to connect.</param>
+      <exception cref="T:System.ArgumentNullException">The <paramref name="address" /> parameter is <see langword="null" />.</exception>
+      <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="port" /> is not between <see cref="F:System.Net.IPEndPoint.MinPort" /> and <see cref="F:System.Net.IPEndPoint.MaxPort" />.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when accessing the socket.</exception>
+      <exception cref="T:System.ObjectDisposedException">
+        <see cref="T:System.Net.Sockets.TcpClient" /> is closed.</exception>
       <returns>The task object representing the asynchronous operation.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.TcpClient.ConnectAsync(System.Net.IPAddress,System.Int32,System.Threading.CancellationToken)">
+      <summary>Connects the client to a remote TCP host using the specified IP address and port number as an asynchronous operation.</summary>
+      <param name="address">The IP address of the remote host.</param>
+      <param name="port">The port number of the remote host.</param>
+      <param name="cancellationToken">A cancellation token that can be used to signal the asynchronous operation should be canceled.</param>
       <exception cref="T:System.ArgumentNullException">The <paramref name="address" /> parameter is <see langword="null" />.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="port" /> is not between <see cref="F:System.Net.IPEndPoint.MinPort" /> and <see cref="F:System.Net.IPEndPoint.MaxPort" />.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when accessing the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">
         <see cref="T:System.Net.Sockets.TcpClient" /> is closed.</exception>
+      <returns>A task that represents the asynchronous connection operation.</returns>
     </member>
     <member name="M:System.Net.Sockets.TcpClient.ConnectAsync(System.Net.IPAddress[],System.Int32)">
       <summary>Connects the client to a remote TCP host using the specified IP addresses and port number as an asynchronous operation.</summary>
       <param name="addresses">The <see cref="T:System.Net.IPAddress" /> array of the host to which you intend to connect.</param>
       <param name="port">The port number to which you intend to connect.</param>
+      <exception cref="T:System.ArgumentNullException">The <paramref name="ipAddresses" /> parameter is <see langword="null" />.</exception>
+      <exception cref="T:System.ArgumentOutOfRangeException">The port number is not valid.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <exception cref="T:System.Security.SecurityException">A caller higher in the call stack does not have permission for the requested operation.</exception>
+      <exception cref="T:System.NotSupportedException">This method is valid for sockets that use the <see cref="F:System.Net.Sockets.AddressFamily.InterNetwork" /> flag or the <see cref="F:System.Net.Sockets.AddressFamily.InterNetworkV6" /> flag.</exception>
       <returns>The task object representing the asynchronous operation.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.TcpClient.ConnectAsync(System.Net.IPAddress[],System.Int32,System.Threading.CancellationToken)">
+      <summary>Connects the client to a remote TCP host using the specified IP addresses and port number as an asynchronous operation.</summary>
+      <param name="addresses">The array of IP address of the remote host.</param>
+      <param name="port">The port number of the remote host.</param>
+      <param name="cancellationToken">A cancellation token that can be used to signal the asynchronous operation should be canceled.</param>
       <exception cref="T:System.ArgumentNullException">The <paramref name="ipAddresses" /> parameter is <see langword="null" />.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">The port number is not valid.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
       <exception cref="T:System.Security.SecurityException">A caller higher in the call stack does not have permission for the requested operation.</exception>
       <exception cref="T:System.NotSupportedException">This method is valid for sockets that use the <see cref="F:System.Net.Sockets.AddressFamily.InterNetwork" /> flag or the <see cref="F:System.Net.Sockets.AddressFamily.InterNetworkV6" /> flag.</exception>
+      <returns>A task that represents the asynchronous connection operation.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.TcpClient.ConnectAsync(System.Net.IPEndPoint)">
+      <summary>Connects the client to a remote TCP host using the specified endpoint as an asynchronous operation.</summary>
+      <param name="remoteEP">The <see cref="T:System.Net.IPEndPoint" /> to which you intend to connect.</param>
+      <returns>A task representing the asynchronous operation.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.TcpClient.ConnectAsync(System.Net.IPEndPoint,System.Threading.CancellationToken)">
+      <summary>Connects the client to a remote TCP host using the specified endpoint as an asynchronous operation.</summary>
+      <param name="remoteEP">The <see cref="T:System.Net.IPEndPoint" /> to which you intend to connect.</param>
+      <param name="cancellationToken">A cancellation token used to propagate notification that this operation should be canceled.</param>
+      <returns>A task representing the asynchronous operation.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.TcpClient.ConnectAsync(System.String,System.Int32)">
+      <summary>Connects the client to the specified TCP port on the specified host as an asynchronous operation.</summary>
+      <param name="host">The DNS name of the remote host to which you intend to connect.</param>
+      <param name="port">The port number of the remote host to which you intend to connect.</param>
+      <exception cref="T:System.ArgumentNullException">The <paramref name="hostname" /> parameter is <see langword="null" />.</exception>
+      <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="port" /> parameter is not between <see cref="F:System.Net.IPEndPoint.MinPort" /> and <see cref="F:System.Net.IPEndPoint.MaxPort" />.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when accessing the socket.</exception>
+      <exception cref="T:System.ObjectDisposedException">
+        <see cref="T:System.Net.Sockets.TcpClient" /> is closed.</exception>
+      <returns>The task object representing the asynchronous operation.</returns>
     </member>
-    <member name="M:System.Net.Sockets.TcpClient.ConnectAsync(System.String,System.Int32)">
+    <member name="M:System.Net.Sockets.TcpClient.ConnectAsync(System.String,System.Int32,System.Threading.CancellationToken)">
       <summary>Connects the client to the specified TCP port on the specified host as an asynchronous operation.</summary>
-      <param name="host">The DNS name of the remote host to which you intend to connect.</param>
-      <param name="port">The port number of the remote host to which you intend to connect.</param>
-      <returns>The task object representing the asynchronous operation.</returns>
+      <param name="host">The DNS name of the remote host.</param>
+      <param name="port">The port number of the remote host.</param>
+      <param name="cancellationToken">A cancellation token that can be used to signal the asynchronous operation should be canceled.</param>
       <exception cref="T:System.ArgumentNullException">The <paramref name="hostname" /> parameter is <see langword="null" />.</exception>
       <exception cref="T:System.ArgumentOutOfRangeException">The <paramref name="port" /> parameter is not between <see cref="F:System.Net.IPEndPoint.MinPort" /> and <see cref="F:System.Net.IPEndPoint.MaxPort" />.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when accessing the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">
         <see cref="T:System.Net.Sockets.TcpClient" /> is closed.</exception>
-    </member>
-    <member name="P:System.Net.Sockets.TcpClient.Connected">
-      <summary>Gets a value indicating whether the underlying <see cref="T:System.Net.Sockets.Socket" /> for a <see cref="T:System.Net.Sockets.TcpClient" /> is connected to a remote host.</summary>
-      <returns>
-        <see langword="true" /> if the <see cref="P:System.Net.Sockets.TcpClient.Client" /> socket was connected to a remote resource as of the most recent operation; otherwise, <see langword="false" />.</returns>
+      <returns>A task that represents the asynchronous connection operation.</returns>
     </member>
     <member name="M:System.Net.Sockets.TcpClient.Dispose">
       <summary>Releases the managed and unmanaged resources used by the <see cref="T:System.Net.Sockets.TcpClient" />.</summary>
@@ -3212,21 +3874,41 @@ The <paramref name="family" /> parameter is not equal to AddressFamily.InterNetw
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the <see cref="T:System.Net.Sockets.Socket" />.</exception>
       <exception cref="T:System.ObjectDisposedException">The underlying <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
     </member>
-    <member name="P:System.Net.Sockets.TcpClient.ExclusiveAddressUse">
-      <summary>Gets or sets a <see cref="T:System.Boolean" /> value that specifies whether the <see cref="T:System.Net.Sockets.TcpClient" /> allows only one client to use a port.</summary>
-      <returns>
-        <see langword="true" /> if the <see cref="T:System.Net.Sockets.TcpClient" /> allows only one client to use a specific port; otherwise, <see langword="false" />. The default is <see langword="true" /> for Windows Server 2003 and Windows XP Service Pack 2 and later, and <see langword="false" /> for all other versions.</returns>
-      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the underlying socket.</exception>
-      <exception cref="T:System.ObjectDisposedException">The underlying <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
-    </member>
     <member name="M:System.Net.Sockets.TcpClient.Finalize">
       <summary>Frees resources used by the <see cref="T:System.Net.Sockets.TcpClient" /> class.</summary>
     </member>
     <member name="M:System.Net.Sockets.TcpClient.GetStream">
       <summary>Returns the <see cref="T:System.Net.Sockets.NetworkStream" /> used to send and receive data.</summary>
-      <returns>The underlying <see cref="T:System.Net.Sockets.NetworkStream" />.</returns>
       <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Net.Sockets.TcpClient" /> is not connected to a remote host.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.TcpClient" /> has been closed.</exception>
+      <returns>The underlying <see cref="T:System.Net.Sockets.NetworkStream" />.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.TcpClient.Active">
+      <summary>Gets or sets a value that indicates whether a connection has been made.</summary>
+      <returns>
+        <see langword="true" /> if the connection has been made; otherwise, <see langword="false" />.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.TcpClient.Available">
+      <summary>Gets the amount of data that has been received from the network and is available to be read.</summary>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the socket.</exception>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>The number of bytes of data received from the network and available to be read.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.TcpClient.Client">
+      <summary>Gets or sets the underlying <see cref="T:System.Net.Sockets.Socket" />.</summary>
+      <returns>The underlying network <see cref="T:System.Net.Sockets.Socket" />.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.TcpClient.Connected">
+      <summary>Gets a value indicating whether the underlying <see cref="T:System.Net.Sockets.Socket" /> for a <see cref="T:System.Net.Sockets.TcpClient" /> is connected to a remote host.</summary>
+      <returns>
+        <see langword="true" /> if the <see cref="P:System.Net.Sockets.TcpClient.Client" /> socket was connected to a remote resource as of the most recent operation; otherwise, <see langword="false" />.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.TcpClient.ExclusiveAddressUse">
+      <summary>Gets or sets a <see cref="T:System.Boolean" /> value that specifies whether the <see cref="T:System.Net.Sockets.TcpClient" /> allows only one client to use a port.</summary>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the underlying socket.</exception>
+      <exception cref="T:System.ObjectDisposedException">The underlying <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>
+        <see langword="true" /> if the <see cref="T:System.Net.Sockets.TcpClient" /> allows only one client to use a specific port; otherwise, <see langword="false" />. The default is <see langword="true" /> for Windows Server 2003 and Windows XP Service Pack 2 and later, and <see langword="false" /> for all other versions.</returns>
     </member>
     <member name="P:System.Net.Sockets.TcpClient.LingerState">
       <summary>Gets or sets information about the linger state of the associated socket.</summary>
@@ -3239,10 +3921,12 @@ The <paramref name="family" /> parameter is not equal to AddressFamily.InterNetw
     </member>
     <member name="P:System.Net.Sockets.TcpClient.ReceiveBufferSize">
       <summary>Gets or sets the size of the receive buffer.</summary>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when setting the buffer size.  
+  
+ -or-  
+  
+ In .NET Compact Framework applications, you cannot set this property. For a workaround, see the Platform Note in Remarks.</exception>
       <returns>The size of the receive buffer, in bytes. The default value is 8192 bytes.</returns>
-      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when setting the buffer size.
--or-
-In .NET Compact Framework applications, you cannot set this property. For a workaround, see the Platform Note in Remarks.</exception>
     </member>
     <member name="P:System.Net.Sockets.TcpClient.ReceiveTimeout">
       <summary>Gets or sets the amount of time a <see cref="T:System.Net.Sockets.TcpClient" /> will wait to receive data once a read operation is initiated.</summary>
@@ -3282,30 +3966,35 @@ In .NET Compact Framework applications, you cannot set this property. For a work
     </member>
     <member name="M:System.Net.Sockets.TcpListener.AcceptSocket">
       <summary>Accepts a pending connection request.</summary>
-      <returns>A <see cref="T:System.Net.Sockets.Socket" /> used to send and receive data.</returns>
       <exception cref="T:System.InvalidOperationException">The listener has not been started with a call to <see cref="M:System.Net.Sockets.TcpListener.Start" />.</exception>
+      <returns>A <see cref="T:System.Net.Sockets.Socket" /> used to send and receive data.</returns>
     </member>
     <member name="M:System.Net.Sockets.TcpListener.AcceptSocketAsync">
       <summary>Accepts a pending connection request as an asynchronous operation.</summary>
-      <returns>The task object representing the asynchronous operation. The <see cref="P:System.Threading.Tasks.Task`1.Result" /> property on the task object returns a <see cref="T:System.Net.Sockets.Socket" /> used to send and receive data.</returns>
       <exception cref="T:System.InvalidOperationException">The listener has not been started with a call to <see cref="M:System.Net.Sockets.TcpListener.Start" />.</exception>
+      <returns>The task object representing the asynchronous operation. The <see cref="P:System.Threading.Tasks.Task`1.Result" /> property on the task object returns a <see cref="T:System.Net.Sockets.Socket" /> used to send and receive data.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.TcpListener.AcceptSocketAsync(System.Threading.CancellationToken)">
+      <summary>Accepts a pending connection request as a cancellable asynchronous operation.</summary>
+      <param name="cancellationToken">A cancellation token that can be used to cancel the asynchronous operation.</param>
+      <returns>The task object representing the asynchronous operation. The <see cref="P:System.Threading.Tasks.Task`1.Result" /> property on the task object returns a <see cref="T:System.Net.Sockets.Socket" /> used to send and receive data.</returns>
     </member>
     <member name="M:System.Net.Sockets.TcpListener.AcceptTcpClient">
       <summary>Accepts a pending connection request.</summary>
-      <returns>A <see cref="T:System.Net.Sockets.TcpClient" /> used to send and receive data.</returns>
       <exception cref="T:System.InvalidOperationException">The listener has not been started with a call to <see cref="M:System.Net.Sockets.TcpListener.Start" />.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">Use the <see cref="P:System.Net.Sockets.SocketException.ErrorCode" /> property to obtain the specific error code. When you have obtained this code, you can refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.</exception>
+      <returns>A <see cref="T:System.Net.Sockets.TcpClient" /> used to send and receive data.</returns>
     </member>
     <member name="M:System.Net.Sockets.TcpListener.AcceptTcpClientAsync">
       <summary>Accepts a pending connection request as an asynchronous operation.</summary>
-      <returns>The task object representing the asynchronous operation. The <see cref="P:System.Threading.Tasks.Task`1.Result" /> property on the task object returns a <see cref="T:System.Net.Sockets.TcpClient" /> used to send and receive data.</returns>
       <exception cref="T:System.InvalidOperationException">The listener has not been started with a call to <see cref="M:System.Net.Sockets.TcpListener.Start" />.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">Use the <see cref="P:System.Net.Sockets.SocketException.ErrorCode" /> property to obtain the specific error code. When you have obtained this code, you can refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.</exception>
+      <returns>The task object representing the asynchronous operation. The <see cref="P:System.Threading.Tasks.Task`1.Result" /> property on the task object returns a <see cref="T:System.Net.Sockets.TcpClient" /> used to send and receive data.</returns>
     </member>
-    <member name="P:System.Net.Sockets.TcpListener.Active">
-      <summary>Gets a value that indicates whether <see cref="T:System.Net.Sockets.TcpListener" /> is actively listening for client connections.</summary>
-      <returns>
-        <see langword="true" /> if <see cref="T:System.Net.Sockets.TcpListener" /> is actively listening; otherwise, <see langword="false" />.</returns>
+    <member name="M:System.Net.Sockets.TcpListener.AcceptTcpClientAsync(System.Threading.CancellationToken)">
+      <summary>Accepts a pending connection request as a cancellable asynchronous operation.</summary>
+      <param name="cancellationToken">A cancellation token that can be used to cancel the asynchronous operation</param>
+      <returns>The task object representing the asynchronous operation. The <see cref="P:System.Threading.Tasks.Task`1.Result" /> property on the task object returns a <see cref="T:System.Net.Sockets.TcpClient" /> used to send and receive data.</returns>
     </member>
     <member name="M:System.Net.Sockets.TcpListener.AllowNatTraversal(System.Boolean)">
       <summary>Enables or disables Network Address Translation (NAT) traversal on a <see cref="T:System.Net.Sockets.TcpListener" /> instance.</summary>
@@ -3316,17 +4005,17 @@ In .NET Compact Framework applications, you cannot set this property. For a work
       <summary>Begins an asynchronous operation to accept an incoming connection attempt.</summary>
       <param name="callback">An <see cref="T:System.AsyncCallback" /> delegate that references the method to invoke when the operation is complete.</param>
       <param name="state">A user-defined object containing information about the accept operation. This object is passed to the <paramref name="callback" /> delegate when the operation is complete.</param>
-      <returns>An <see cref="T:System.IAsyncResult" /> that references the asynchronous creation of the <see cref="T:System.Net.Sockets.Socket" />.</returns>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred while attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>An <see cref="T:System.IAsyncResult" /> that references the asynchronous creation of the <see cref="T:System.Net.Sockets.Socket" />.</returns>
     </member>
     <member name="M:System.Net.Sockets.TcpListener.BeginAcceptTcpClient(System.AsyncCallback,System.Object)">
       <summary>Begins an asynchronous operation to accept an incoming connection attempt.</summary>
       <param name="callback">An <see cref="T:System.AsyncCallback" /> delegate that references the method to invoke when the operation is complete.</param>
       <param name="state">A user-defined object containing information about the accept operation. This object is passed to the <paramref name="callback" /> delegate when the operation is complete.</param>
-      <returns>An <see cref="T:System.IAsyncResult" /> that references the asynchronous creation of the <see cref="T:System.Net.Sockets.TcpClient" />.</returns>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred while attempting to access the socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>An <see cref="T:System.IAsyncResult" /> that references the asynchronous creation of the <see cref="T:System.Net.Sockets.TcpClient" />.</returns>
     </member>
     <member name="M:System.Net.Sockets.TcpListener.Create(System.Int32)">
       <summary>Creates a new <see cref="T:System.Net.Sockets.TcpListener" /> instance to listen on the specified port.</summary>
@@ -3336,41 +4025,27 @@ In .NET Compact Framework applications, you cannot set this property. For a work
     <member name="M:System.Net.Sockets.TcpListener.EndAcceptSocket(System.IAsyncResult)">
       <summary>Asynchronously accepts an incoming connection attempt and creates a new <see cref="T:System.Net.Sockets.Socket" /> to handle remote host communication.</summary>
       <param name="asyncResult">An <see cref="T:System.IAsyncResult" /> returned by a call to the <see cref="M:System.Net.Sockets.TcpListener.BeginAcceptSocket(System.AsyncCallback,System.Object)" /> method.</param>
-      <returns>A <see cref="T:System.Net.Sockets.Socket" />.
-The <see cref="T:System.Net.Sockets.Socket" /> used to send and receive data.</returns>
       <exception cref="T:System.ObjectDisposedException">The underlying <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
       <exception cref="T:System.ArgumentNullException">The <paramref name="asyncResult" /> parameter is <see langword="null" />.</exception>
       <exception cref="T:System.ArgumentException">The <paramref name="asyncResult" /> parameter was not created by a call to the <see cref="M:System.Net.Sockets.TcpListener.BeginAcceptSocket(System.AsyncCallback,System.Object)" /> method.</exception>
       <exception cref="T:System.InvalidOperationException">The <see cref="M:System.Net.Sockets.TcpListener.EndAcceptSocket(System.IAsyncResult)" /> method was previously called.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred while attempting to access the <see cref="T:System.Net.Sockets.Socket" />.</exception>
+      <returns>A <see cref="T:System.Net.Sockets.Socket" />.  
+  
+ The <see cref="T:System.Net.Sockets.Socket" /> used to send and receive data.</returns>
     </member>
     <member name="M:System.Net.Sockets.TcpListener.EndAcceptTcpClient(System.IAsyncResult)">
       <summary>Asynchronously accepts an incoming connection attempt and creates a new <see cref="T:System.Net.Sockets.TcpClient" /> to handle remote host communication.</summary>
       <param name="asyncResult">An <see cref="T:System.IAsyncResult" /> returned by a call to the <see cref="M:System.Net.Sockets.TcpListener.BeginAcceptTcpClient(System.AsyncCallback,System.Object)" /> method.</param>
-      <returns>A <see cref="T:System.Net.Sockets.TcpClient" />.
-The <see cref="T:System.Net.Sockets.TcpClient" /> used to send and receive data.</returns>
-    </member>
-    <member name="P:System.Net.Sockets.TcpListener.ExclusiveAddressUse">
-      <summary>Gets or sets a <see cref="T:System.Boolean" /> value that specifies whether the <see cref="T:System.Net.Sockets.TcpListener" /> allows only one underlying socket to listen to a specific port.</summary>
-      <returns>
-        <see langword="true" /> if the <see cref="T:System.Net.Sockets.TcpListener" /> allows only one <see cref="T:System.Net.Sockets.TcpListener" /> to listen to a specific port; otherwise, <see langword="false" />. . The default is <see langword="true" /> for Windows Server 2003 and Windows XP Service Pack 2 and later, and <see langword="false" /> for all other versions.</returns>
-      <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Net.Sockets.TcpListener" /> has been started. Call the <see cref="M:System.Net.Sockets.TcpListener.Stop" /> method and then set the <see cref="P:System.Net.Sockets.Socket.ExclusiveAddressUse" /> property.</exception>
-      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the underlying socket.</exception>
-      <exception cref="T:System.ObjectDisposedException">The underlying <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
-    </member>
-    <member name="P:System.Net.Sockets.TcpListener.LocalEndpoint">
-      <summary>Gets the underlying <see cref="T:System.Net.EndPoint" /> of the current <see cref="T:System.Net.Sockets.TcpListener" />.</summary>
-      <returns>The <see cref="T:System.Net.EndPoint" /> to which the <see cref="T:System.Net.Sockets.Socket" /> is bound.</returns>
+      <returns>A <see cref="T:System.Net.Sockets.TcpClient" />.  
+  
+ The <see cref="T:System.Net.Sockets.TcpClient" /> used to send and receive data.</returns>
     </member>
     <member name="M:System.Net.Sockets.TcpListener.Pending">
       <summary>Determines if there are pending connection requests.</summary>
+      <exception cref="T:System.InvalidOperationException">The listener has not been started with a call to <see cref="M:System.Net.Sockets.TcpListener.Start" />.</exception>
       <returns>
         <see langword="true" /> if connections are pending; otherwise, <see langword="false" />.</returns>
-      <exception cref="T:System.InvalidOperationException">The listener has not been started with a call to <see cref="M:System.Net.Sockets.TcpListener.Start" />.</exception>
-    </member>
-    <member name="P:System.Net.Sockets.TcpListener.Server">
-      <summary>Gets the underlying network <see cref="T:System.Net.Sockets.Socket" />.</summary>
-      <returns>The underlying <see cref="T:System.Net.Sockets.Socket" />.</returns>
     </member>
     <member name="M:System.Net.Sockets.TcpListener.Start">
       <summary>Starts listening for incoming connection requests.</summary>
@@ -3387,6 +4062,27 @@ The <see cref="T:System.Net.Sockets.TcpClient" /> used to send and receive data.
       <summary>Closes the listener.</summary>
       <exception cref="T:System.Net.Sockets.SocketException">Use the <see cref="P:System.Net.Sockets.SocketException.ErrorCode" /> property to obtain the specific error code. When you have obtained this code, you can refer to the Windows Sockets version 2 API error code documentation for a detailed description of the error.</exception>
     </member>
+    <member name="P:System.Net.Sockets.TcpListener.Active">
+      <summary>Gets a value that indicates whether <see cref="T:System.Net.Sockets.TcpListener" /> is actively listening for client connections.</summary>
+      <returns>
+        <see langword="true" /> if <see cref="T:System.Net.Sockets.TcpListener" /> is actively listening; otherwise, <see langword="false" />.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.TcpListener.ExclusiveAddressUse">
+      <summary>Gets or sets a <see cref="T:System.Boolean" /> value that specifies whether the <see cref="T:System.Net.Sockets.TcpListener" /> allows only one underlying socket to listen to a specific port.</summary>
+      <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Net.Sockets.TcpListener" /> has been started. Call the <see cref="M:System.Net.Sockets.TcpListener.Stop" /> method and then set the <see cref="P:System.Net.Sockets.Socket.ExclusiveAddressUse" /> property.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the underlying socket.</exception>
+      <exception cref="T:System.ObjectDisposedException">The underlying <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>
+        <see langword="true" /> if the <see cref="T:System.Net.Sockets.TcpListener" /> allows only one <see cref="T:System.Net.Sockets.TcpListener" /> to listen to a specific port; otherwise, <see langword="false" />. The default is <see langword="true" /> for Windows Server 2003 and Windows XP Service Pack 2 and later, and <see langword="false" /> for all other versions.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.TcpListener.LocalEndpoint">
+      <summary>Gets the underlying <see cref="T:System.Net.EndPoint" /> of the current <see cref="T:System.Net.Sockets.TcpListener" />.</summary>
+      <returns>The <see cref="T:System.Net.EndPoint" /> to which the <see cref="T:System.Net.Sockets.Socket" /> is bound.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.TcpListener.Server">
+      <summary>Gets the underlying network <see cref="T:System.Net.Sockets.Socket" />.</summary>
+      <returns>The underlying <see cref="T:System.Net.Sockets.Socket" />.</returns>
+    </member>
     <member name="T:System.Net.Sockets.TransmitFileOptions">
       <summary>The <see cref="T:System.Net.Sockets.TransmitFileOptions" /> enumeration defines values used in file transfer requests.</summary>
     </member>
@@ -3455,21 +4151,10 @@ The <see cref="T:System.Net.Sockets.TcpClient" /> used to send and receive data.
         <paramref name="port" /> is not between <see cref="F:System.Net.IPEndPoint.MinPort" /> and <see cref="F:System.Net.IPEndPoint.MaxPort" />.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when accessing the socket.</exception>
     </member>
-    <member name="P:System.Net.Sockets.UdpClient.Active">
-      <summary>Gets or sets a value indicating whether a default remote host has been established.</summary>
-      <returns>
-        <see langword="true" /> if a connection is active; otherwise, <see langword="false" />.</returns>
-    </member>
     <member name="M:System.Net.Sockets.UdpClient.AllowNatTraversal(System.Boolean)">
       <summary>Enables or disables Network Address Translation (NAT) traversal on a <see cref="T:System.Net.Sockets.UdpClient" /> instance.</summary>
       <param name="allowed">A Boolean value that specifies whether to enable or disable NAT traversal.</param>
     </member>
-    <member name="P:System.Net.Sockets.UdpClient.Available">
-      <summary>Gets the amount of data received from the network that is available to read.</summary>
-      <returns>The number of bytes of data received from the network.</returns>
-      <exception cref="T:System.Net.Sockets.SocketException">An error occurred while attempting to access the socket.</exception>
-      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
-    </member>
     <member name="M:System.Net.Sockets.UdpClient.BeginReceive(System.AsyncCallback,System.Object)">
       <summary>Receives a datagram from a remote host asynchronously.</summary>
       <param name="requestCallback">An <see cref="T:System.AsyncCallback" /> delegate that references the method to invoke when the operation is complete.</param>
@@ -3503,10 +4188,6 @@ The <see cref="T:System.Net.Sockets.TcpClient" /> used to send and receive data.
       <param name="state">A user-defined object that contains information about the send operation. This object is passed to the <paramref name="requestCallback" /> delegate when the operation is complete.</param>
       <returns>An <see cref="T:System.IAsyncResult" /> object that references the asynchronous send.</returns>
     </member>
-    <member name="P:System.Net.Sockets.UdpClient.Client">
-      <summary>Gets or sets the underlying network <see cref="T:System.Net.Sockets.Socket" />.</summary>
-      <returns>The underlying Network <see cref="T:System.Net.Sockets.Socket" />.</returns>
-    </member>
     <member name="M:System.Net.Sockets.UdpClient.Close">
       <summary>Closes the UDP connection.</summary>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when accessing the socket.</exception>
@@ -3548,12 +4229,6 @@ The <see cref="T:System.Net.Sockets.TcpClient" /> used to send and receive data.
       <param name="disposing">
         <see langword="true" /> to release both managed and unmanaged resources; <see langword="false" /> to release only unmanaged resources.</param>
     </member>
-    <member name="P:System.Net.Sockets.UdpClient.DontFragment">
-      <summary>Gets or sets a <see cref="T:System.Boolean" /> value that specifies whether the <see cref="T:System.Net.Sockets.UdpClient" /> allows Internet Protocol (IP) datagrams to be fragmented.</summary>
-      <returns>
-        <see langword="true" /> if the <see cref="T:System.Net.Sockets.UdpClient" /> allows datagram fragmentation; otherwise, <see langword="false" />. The default is <see langword="true" />.</returns>
-      <exception cref="T:System.NotSupportedException">This property can be set only for sockets that use the <see cref="F:System.Net.Sockets.AddressFamily.InterNetwork" /> flag or the <see cref="F:System.Net.Sockets.AddressFamily.InterNetworkV6" /> flag.</exception>
-    </member>
     <member name="M:System.Net.Sockets.UdpClient.DropMulticastGroup(System.Net.IPAddress)">
       <summary>Leaves a multicast group.</summary>
       <param name="multicastAddr">The <see cref="T:System.Net.IPAddress" /> of the multicast group to leave.</param>
@@ -3573,16 +4248,10 @@ The <see cref="T:System.Net.Sockets.TcpClient" /> used to send and receive data.
       <exception cref="T:System.ArgumentNullException">
         <paramref name="multicastAddr" /> is <see langword="null" />.</exception>
     </member>
-    <member name="P:System.Net.Sockets.UdpClient.EnableBroadcast">
-      <summary>Gets or sets a <see cref="T:System.Boolean" /> value that specifies whether the <see cref="T:System.Net.Sockets.UdpClient" /> may send or receive broadcast packets.</summary>
-      <returns>
-        <see langword="true" /> if the <see cref="T:System.Net.Sockets.UdpClient" /> allows broadcast packets; otherwise, <see langword="false" />. The default is <see langword="false" />.</returns>
-    </member>
     <member name="M:System.Net.Sockets.UdpClient.EndReceive(System.IAsyncResult,System.Net.IPEndPoint@)">
       <summary>Ends a pending asynchronous receive.</summary>
       <param name="asyncResult">An <see cref="T:System.IAsyncResult" /> object returned by a call to <see cref="M:System.Net.Sockets.UdpClient.BeginReceive(System.AsyncCallback,System.Object)" />.</param>
       <param name="remoteEP">The specified remote endpoint.</param>
-      <returns>If successful, an array of bytes that contains datagram data.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="asyncResult" /> is <see langword="null" />.</exception>
       <exception cref="T:System.ArgumentException">
@@ -3591,11 +4260,11 @@ The <see cref="T:System.Net.Sockets.TcpClient" /> used to send and receive data.
         <see cref="M:System.Net.Sockets.UdpClient.EndReceive(System.IAsyncResult,System.Net.IPEndPoint@)" /> was previously called for the asynchronous read.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the underlying <see cref="T:System.Net.Sockets.Socket" />.</exception>
       <exception cref="T:System.ObjectDisposedException">The underlying <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>If successful, an array of bytes that contains datagram data.</returns>
     </member>
     <member name="M:System.Net.Sockets.UdpClient.EndSend(System.IAsyncResult)">
       <summary>Ends a pending asynchronous send.</summary>
       <param name="asyncResult">An <see cref="T:System.IAsyncResult" /> object returned by a call to <see cref="Overload:System.Net.Sockets.UdpClient.BeginSend" />.</param>
-      <returns>If successful, the number of bytes sent to the <see cref="T:System.Net.Sockets.UdpClient" />.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="asyncResult" /> is <see langword="null" />.</exception>
       <exception cref="T:System.ArgumentException">
@@ -3604,13 +4273,7 @@ The <see cref="T:System.Net.Sockets.TcpClient" /> used to send and receive data.
         <see cref="M:System.Net.Sockets.Socket.EndSend(System.IAsyncResult)" /> was previously called for the asynchronous read.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the underlying socket.</exception>
       <exception cref="T:System.ObjectDisposedException">The underlying <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
-    </member>
-    <member name="P:System.Net.Sockets.UdpClient.ExclusiveAddressUse">
-      <summary>Gets or sets a <see cref="T:System.Boolean" /> value that specifies whether the <see cref="T:System.Net.Sockets.UdpClient" /> allows only one client to use a port.</summary>
-      <returns>
-        <see langword="true" /> if the <see cref="T:System.Net.Sockets.UdpClient" /> allows only one client to use a specific port; otherwise, <see langword="false" />. The default is <see langword="true" /> for Windows Server 2003 and Windows XP Service Pack 2 and later, and <see langword="false" /> for all other versions.</returns>
-      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the underlying socket.</exception>
-      <exception cref="T:System.ObjectDisposedException">The underlying <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>If successful, the number of bytes sent to the <see cref="T:System.Net.Sockets.UdpClient" />.</returns>
     </member>
     <member name="M:System.Net.Sockets.UdpClient.JoinMulticastGroup(System.Int32,System.Net.IPAddress)">
       <summary>Adds a <see cref="T:System.Net.Sockets.UdpClient" /> to a multicast group.</summary>
@@ -3644,41 +4307,42 @@ The <see cref="T:System.Net.Sockets.TcpClient" /> used to send and receive data.
       <exception cref="T:System.ObjectDisposedException">The underlying <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when accessing the socket.</exception>
     </member>
-    <member name="P:System.Net.Sockets.UdpClient.MulticastLoopback">
-      <summary>Gets or sets a <see cref="T:System.Boolean" /> value that specifies whether outgoing multicast packets are delivered to the sending application.</summary>
-      <returns>
-        <see langword="true" /> if the <see cref="T:System.Net.Sockets.UdpClient" /> receives outgoing multicast packets; otherwise, <see langword="false" />.</returns>
-    </member>
     <member name="M:System.Net.Sockets.UdpClient.Receive(System.Net.IPEndPoint@)">
       <summary>Returns a UDP datagram that was sent by a remote host.</summary>
       <param name="remoteEP">An <see cref="T:System.Net.IPEndPoint" /> that represents the remote host from which the data was sent.</param>
-      <returns>An array of type <see cref="T:System.Byte" /> that contains datagram data.</returns>
       <exception cref="T:System.ObjectDisposedException">The underlying <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when accessing the socket.</exception>
+      <returns>An array of type <see cref="T:System.Byte" /> that contains datagram data.</returns>
     </member>
     <member name="M:System.Net.Sockets.UdpClient.ReceiveAsync">
       <summary>Returns a UDP datagram asynchronously that was sent by a remote host.</summary>
+      <exception cref="T:System.ObjectDisposedException">The underlying <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when accessing the socket.</exception>
       <returns>The task object representing the asynchronous operation.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.UdpClient.ReceiveAsync(System.Threading.CancellationToken)">
+      <summary>Returns a UDP datagram asynchronously that was sent by a remote host.</summary>
+      <param name="cancellationToken">The token to monitor for cancellation requests.</param>
       <exception cref="T:System.ObjectDisposedException">The underlying <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when accessing the socket.</exception>
+      <returns>A <see cref="T:System.Threading.Tasks.ValueTask`1" /> representing the asynchronous operation.</returns>
     </member>
     <member name="M:System.Net.Sockets.UdpClient.Send(System.Byte[],System.Int32)">
       <summary>Sends a UDP datagram to a remote host.</summary>
       <param name="dgram">An array of type <see cref="T:System.Byte" /> that specifies the UDP datagram that you intend to send represented as an array of bytes.</param>
       <param name="bytes">The number of bytes in the datagram.</param>
-      <returns>The number of bytes sent.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="dgram" /> is <see langword="null" />.</exception>
       <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Net.Sockets.UdpClient" /> has already established a default remote host.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.UdpClient" /> is closed.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when accessing the socket.</exception>
+      <returns>The number of bytes sent.</returns>
     </member>
     <member name="M:System.Net.Sockets.UdpClient.Send(System.Byte[],System.Int32,System.Net.IPEndPoint)">
       <summary>Sends a UDP datagram to the host at the specified remote endpoint.</summary>
       <param name="dgram">An array of type <see cref="T:System.Byte" /> that specifies the UDP datagram that you intend to send, represented as an array of bytes.</param>
       <param name="bytes">The number of bytes in the datagram.</param>
       <param name="endPoint">An <see cref="T:System.Net.IPEndPoint" /> that represents the host and port to which to send the datagram.</param>
-      <returns>The number of bytes sent.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="dgram" /> is <see langword="null" />.</exception>
       <exception cref="T:System.InvalidOperationException">
@@ -3686,6 +4350,7 @@ The <see cref="T:System.Net.Sockets.TcpClient" /> used to send and receive data.
       <exception cref="T:System.ObjectDisposedException">
         <see cref="T:System.Net.Sockets.UdpClient" /> is closed.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when accessing the socket.</exception>
+      <returns>The number of bytes sent.</returns>
     </member>
     <member name="M:System.Net.Sockets.UdpClient.Send(System.Byte[],System.Int32,System.String,System.Int32)">
       <summary>Sends a UDP datagram to a specified port on a specified remote host.</summary>
@@ -3693,30 +4358,58 @@ The <see cref="T:System.Net.Sockets.TcpClient" /> used to send and receive data.
       <param name="bytes">The number of bytes in the datagram.</param>
       <param name="hostname">The name of the remote host to which you intend to send the datagram.</param>
       <param name="port">The remote port number with which you intend to communicate.</param>
-      <returns>The number of bytes sent.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="dgram" /> is <see langword="null" />.</exception>
       <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Net.Sockets.UdpClient" /> has already established a default remote host.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.UdpClient" /> is closed.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when accessing the socket.</exception>
+      <returns>The number of bytes sent.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.UdpClient.Send(System.ReadOnlySpan{System.Byte})">
+      <summary>Sends a UDP datagram to a remote host.</summary>
+      <param name="datagram">An <see cref="T:System.ReadOnlySpan`1" /> of Type <see cref="T:System.Byte" /> that specifies the UDP datagram that you intend to send.</param>
+      <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Net.Sockets.UdpClient" /> has not established a default remote host.</exception>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.UdpClient" /> is closed.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when accessing the socket.</exception>
+      <returns>The number of bytes sent.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.UdpClient.Send(System.ReadOnlySpan{System.Byte},System.Net.IPEndPoint)">
+      <summary>Sends a UDP datagram to the host at the specified remote endpoint.</summary>
+      <param name="datagram">An <see cref="T:System.ReadOnlySpan`1" /> of Type <see cref="T:System.Byte" /> that specifies the UDP datagram that you intend to send.</param>
+      <param name="endPoint">An <see cref="T:System.Net.IPEndPoint" /> that represents the host and port to which to send the datagram.</param>
+      <exception cref="T:System.InvalidOperationException">
+        <see cref="T:System.Net.Sockets.UdpClient" /> has already established a default remote host and <paramref name="endPoint" /> is not <see langword="null" />.</exception>
+      <exception cref="T:System.ObjectDisposedException">
+        <see cref="T:System.Net.Sockets.UdpClient" /> is closed.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when accessing the socket.</exception>
+      <returns>The number of bytes sent.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.UdpClient.Send(System.ReadOnlySpan{System.Byte},System.String,System.Int32)">
+      <summary>Sends a UDP datagram to a specified port on a specified remote host.</summary>
+      <param name="datagram">An <see cref="T:System.ReadOnlySpan`1" /> of Type <see cref="T:System.Byte" /> that specifies the UDP datagram that you intend to send.</param>
+      <param name="hostname">The name of the remote host to which you intend to send the datagram.</param>
+      <param name="port">The remote port number with which you intend to communicate.</param>
+      <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Net.Sockets.UdpClient" /> has already established a default remote host.</exception>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.UdpClient" /> is closed.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when accessing the socket.</exception>
+      <returns>The number of bytes sent.</returns>
     </member>
     <member name="M:System.Net.Sockets.UdpClient.SendAsync(System.Byte[],System.Int32)">
       <summary>Sends a UDP datagram asynchronously to a remote host.</summary>
       <param name="datagram">An array of type <see cref="T:System.Byte" /> that specifies the UDP datagram that you intend to send represented as an array of bytes.</param>
       <param name="bytes">The number of bytes in the datagram.</param>
-      <returns>Returns <see cref="T:System.Threading.Tasks.Task`1" />.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="dgram" /> is <see langword="null" />.</exception>
       <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Net.Sockets.UdpClient" /> has already established a default remote host.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.UdpClient" /> is closed.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when accessing the socket.</exception>
+      <returns>Returns <see cref="T:System.Threading.Tasks.Task`1" />.</returns>
     </member>
     <member name="M:System.Net.Sockets.UdpClient.SendAsync(System.Byte[],System.Int32,System.Net.IPEndPoint)">
       <summary>Sends a UDP datagram asynchronously to a remote host.</summary>
       <param name="datagram">An array of type <see cref="T:System.Byte" /> that specifies the UDP datagram that you intend to send represented as an array of bytes.</param>
       <param name="bytes">The number of bytes in the datagram.</param>
       <param name="endPoint">An <see cref="T:System.Net.IPEndPoint" /> that represents the host and port to which to send the datagram.</param>
-      <returns>Returns <see cref="T:System.Threading.Tasks.Task`1" />.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="dgram" /> is <see langword="null" />.</exception>
       <exception cref="T:System.InvalidOperationException">
@@ -3724,6 +4417,7 @@ The <see cref="T:System.Net.Sockets.TcpClient" /> used to send and receive data.
       <exception cref="T:System.ObjectDisposedException">
         <see cref="T:System.Net.Sockets.UdpClient" /> is closed.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when accessing the socket.</exception>
+      <returns>Returns <see cref="T:System.Threading.Tasks.Task`1" />.</returns>
     </member>
     <member name="M:System.Net.Sockets.UdpClient.SendAsync(System.Byte[],System.Int32,System.String,System.Int32)">
       <summary>Sends a UDP datagram asynchronously to a remote host.</summary>
@@ -3731,12 +4425,80 @@ The <see cref="T:System.Net.Sockets.TcpClient" /> used to send and receive data.
       <param name="bytes">The number of bytes in the datagram.</param>
       <param name="hostname">The name of the remote host to which you intend to send the datagram.</param>
       <param name="port">The remote port number with which you intend to communicate.</param>
-      <returns>Returns <see cref="T:System.Threading.Tasks.Task`1" />.</returns>
       <exception cref="T:System.ArgumentNullException">
         <paramref name="dgram" /> is <see langword="null" />.</exception>
       <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Net.Sockets.UdpClient" /> has already established a default remote host.</exception>
       <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.UdpClient" /> is closed.</exception>
       <exception cref="T:System.Net.Sockets.SocketException">An error occurred when accessing the socket.</exception>
+      <returns>Returns <see cref="T:System.Threading.Tasks.Task`1" />.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.UdpClient.SendAsync(System.ReadOnlyMemory{System.Byte},System.Net.IPEndPoint,System.Threading.CancellationToken)">
+      <summary>Sends a UDP datagram asynchronously to a remote host.</summary>
+      <param name="datagram">An <see cref="T:System.ReadOnlyMemory`1" /> of Type <see cref="T:System.Byte" /> that specifies the UDP datagram that you intend to send.</param>
+      <param name="endPoint">An <see cref="T:System.Net.IPEndPoint" /> that represents the host and port to which to send the datagram.</param>
+      <param name="cancellationToken">The token to monitor for cancellation requests. The default value is None.</param>
+      <exception cref="T:System.InvalidOperationException">
+        <see cref="T:System.Net.Sockets.UdpClient" /> has already established a default remote host and <paramref name="endPoint" /> is not <see langword="null" />.</exception>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.UdpClient" /> is closed.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when accessing the socket.</exception>
+      <returns>A <see cref="T:System.Threading.Tasks.ValueTask`1" /> that represents the asynchronous send operation. The value of its Result property contains the number of bytes sent.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.UdpClient.SendAsync(System.ReadOnlyMemory{System.Byte},System.String,System.Int32,System.Threading.CancellationToken)">
+      <summary>Sends a UDP datagram asynchronously to a remote host.</summary>
+      <param name="datagram">An <see cref="T:System.ReadOnlyMemory`1" /> of Type <see cref="T:System.Byte" /> that specifies the UDP datagram that you intend to send.</param>
+      <param name="hostname">The name of the remote host to which you intend to send the datagram.</param>
+      <param name="port">The remote port number with which you intend to communicate.</param>
+      <param name="cancellationToken">The token to monitor for cancellation requests. The default value is None.</param>
+      <exception cref="T:System.InvalidOperationException">The <see cref="T:System.Net.Sockets.UdpClient" /> has already established a default remote host.</exception>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.UdpClient" /> is closed.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when accessing the socket.</exception>
+      <returns>A <see cref="T:System.Threading.Tasks.ValueTask`1" /> that represents the asynchronous send operation. The value of its Result property contains the number of bytes sent.</returns>
+    </member>
+    <member name="M:System.Net.Sockets.UdpClient.SendAsync(System.ReadOnlyMemory{System.Byte},System.Threading.CancellationToken)">
+      <summary>Sends a UDP datagram asynchronously to a remote host.</summary>
+      <param name="datagram">An <see cref="T:System.ReadOnlyMemory`1" /> of Type <see cref="T:System.Byte" /> that specifies the UDP datagram that you intend to send.</param>
+      <param name="cancellationToken">The token to monitor for cancellation requests. The default value is None.</param>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.UdpClient" /> is closed.</exception>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when accessing the socket.</exception>
+      <returns>A <see cref="T:System.Threading.Tasks.ValueTask`1" /> that represents the asynchronous send operation. The value of its Result property contains the number of bytes sent.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.UdpClient.Active">
+      <summary>Gets or sets a value indicating whether a default remote host has been established.</summary>
+      <returns>
+        <see langword="true" /> if a connection is active; otherwise, <see langword="false" />.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.UdpClient.Available">
+      <summary>Gets the amount of data received from the network that is available to read.</summary>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred while attempting to access the socket.</exception>
+      <exception cref="T:System.ObjectDisposedException">The <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>The number of bytes of data received from the network.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.UdpClient.Client">
+      <summary>Gets or sets the underlying network <see cref="T:System.Net.Sockets.Socket" />.</summary>
+      <returns>The underlying Network <see cref="T:System.Net.Sockets.Socket" />.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.UdpClient.DontFragment">
+      <summary>Gets or sets a <see cref="T:System.Boolean" /> value that specifies whether the <see cref="T:System.Net.Sockets.UdpClient" /> allows Internet Protocol (IP) datagrams to be fragmented.</summary>
+      <exception cref="T:System.NotSupportedException">This property can be set only for sockets that use the <see cref="F:System.Net.Sockets.AddressFamily.InterNetwork" /> flag or the <see cref="F:System.Net.Sockets.AddressFamily.InterNetworkV6" /> flag.</exception>
+      <returns>
+        <see langword="true" /> if the <see cref="T:System.Net.Sockets.UdpClient" /> allows datagram fragmentation; otherwise, <see langword="false" />. The default is <see langword="true" />.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.UdpClient.EnableBroadcast">
+      <summary>Gets or sets a <see cref="T:System.Boolean" /> value that specifies whether the <see cref="T:System.Net.Sockets.UdpClient" /> may send or receive broadcast packets.</summary>
+      <returns>
+        <see langword="true" /> if the <see cref="T:System.Net.Sockets.UdpClient" /> allows broadcast packets; otherwise, <see langword="false" />. The default is <see langword="false" />.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.UdpClient.ExclusiveAddressUse">
+      <summary>Gets or sets a <see cref="T:System.Boolean" /> value that specifies whether the <see cref="T:System.Net.Sockets.UdpClient" /> allows only one client to use a port.</summary>
+      <exception cref="T:System.Net.Sockets.SocketException">An error occurred when attempting to access the underlying socket.</exception>
+      <exception cref="T:System.ObjectDisposedException">The underlying <see cref="T:System.Net.Sockets.Socket" /> has been closed.</exception>
+      <returns>
+        <see langword="true" /> if the <see cref="T:System.Net.Sockets.UdpClient" /> allows only one client to use a specific port; otherwise, <see langword="false" />. The default is <see langword="true" /> for Windows Server 2003 and Windows XP Service Pack 2 and later, and <see langword="false" /> for all other versions.</returns>
+    </member>
+    <member name="P:System.Net.Sockets.UdpClient.MulticastLoopback">
+      <summary>Gets or sets a <see cref="T:System.Boolean" /> value that specifies whether outgoing multicast packets are delivered to the sending application.</summary>
+      <returns>
+        <see langword="true" /> if the <see cref="T:System.Net.Sockets.UdpClient" /> receives outgoing multicast packets; otherwise, <see langword="false" />.</returns>
     </member>
     <member name="P:System.Net.Sockets.UdpClient.Ttl">
       <summary>Gets or sets a value that specifies the Time to Live (TTL) value of Internet Protocol (IP) packets sent by the <see cref="T:System.Net.Sockets.UdpClient" />.</summary>
@@ -3750,10 +4512,6 @@ The <see cref="T:System.Net.Sockets.TcpClient" /> used to send and receive data.
       <param name="buffer">A buffer for data to receive in the UDP packet.</param>
       <param name="remoteEndPoint">The remote endpoint of the UDP packet.</param>
     </member>
-    <member name="P:System.Net.Sockets.UdpReceiveResult.Buffer">
-      <summary>Gets a buffer with the data received in the UDP packet.</summary>
-      <returns>A <see cref="T:System.Byte" /> array with the data received in the UDP packet.</returns>
-    </member>
     <member name="M:System.Net.Sockets.UdpReceiveResult.Equals(System.Net.Sockets.UdpReceiveResult)">
       <summary>Returns a value that indicates whether this instance is equal to a specified object.</summary>
       <param name="other">The object to compare with this instance.</param>
@@ -3784,6 +4542,10 @@ The <see cref="T:System.Net.Sockets.TcpClient" /> used to send and receive data.
       <returns>
         <see langword="true" /> if <paramref name="left" /> and <paramref name="right" /> are unequal; otherwise, <see langword="false" />.</returns>
     </member>
+    <member name="P:System.Net.Sockets.UdpReceiveResult.Buffer">
+      <summary>Gets a buffer with the data received in the UDP packet.</summary>
+      <returns>A <see cref="T:System.Byte" /> array with the data received in the UDP packet.</returns>
+    </member>
     <member name="P:System.Net.Sockets.UdpReceiveResult.RemoteEndPoint">
       <summary>Gets the remote endpoint from which the UDP packet was received.</summary>
       <returns>The remote endpoint from which the UDP packet was received.</returns>
@@ -3792,7 +4554,13 @@ The <see cref="T:System.Net.Sockets.TcpClient" /> used to send and receive data.
       <summary>Represents a Unix Domain Socket endpoint as a path.</summary>
     </member>
     <member name="M:System.Net.Sockets.UnixDomainSocketEndPoint.#ctor(System.String)">
-      <param name="path" />
+      <summary>Initializes a new instance of the <see cref="T:System.Net.Sockets.UnixDomainSocketEndPoint" /> with the file path to connect a unix domain socket over.</summary>
+      <param name="path">The path to connect a unix domain socket over.</param>
+      <exception cref="T:System.ArgumentNullException">
+        <paramref name="path" /> is <see langword="null" />.</exception>
+      <exception cref="T:System.ArgumentOutOfRangeException">
+        <paramref name="path" /> is of an invalid length for use with domain sockets on this platform. The length must be between 1 and the allowed native path length.</exception>
+      <exception cref="T:System.PlatformNotSupportedException">The current OS does not support Unix Domain Sockets.</exception>
     </member>
   </members>
 </doc>
\ No newline at end of file