Jo Shields a575963da9 Imported Upstream version 3.6.0
Former-commit-id: da6be194a6b1221998fc28233f2503bd61dd9d14
2014-08-13 10:39:27 +01:00

1079 lines
82 KiB
XML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="utf-8"?>
<Type Name="TcpClient" FullName="System.Net.Sockets.TcpClient">
<TypeSignature Language="C#" Value="public class TcpClient : IDisposable" Maintainer="auto" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit TcpClient extends System.Object implements class System.IDisposable" />
<AssemblyInfo>
<AssemblyName>System</AssemblyName>
<AssemblyPublicKey>[00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00]</AssemblyPublicKey>
<AssemblyVersion>1.0.3300.0</AssemblyVersion>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ThreadSafetyStatement>Gtk# is thread aware, but not thread safe; See the &lt;link location="node:gtk-sharp/programming/threads"&gt;Gtk# Thread Programming&lt;/link&gt; for details.</ThreadSafetyStatement>
<Base>
<BaseTypeName>System.Object</BaseTypeName>
</Base>
<Interfaces>
<Interface>
<InterfaceName>System.IDisposable</InterfaceName>
</Interface>
</Interfaces>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The <see cref="T:System.Net.Sockets.TcpClient" /> class provides simple methods for connecting, sending, and receiving stream data over a network in synchronous blocking mode.</para>
<para>In order for <see cref="T:System.Net.Sockets.TcpClient" /> to connect and exchange data, a <see cref="T:System.Net.Sockets.TcpListener" /> or <see cref="T:System.Net.Sockets.Socket" /> created with the TCP <see cref="T:System.Net.Sockets.ProtocolType" /> must be listening for incoming connection requests. You can connect to this listener in one of the following two ways: </para>
<list type="bullet">
<item>
<para>Create a <see cref="T:System.Net.Sockets.TcpClient" /> and call one of the three available <see cref="M:System.Net.Sockets.TcpClient.Connect(System.String,System.Int32)" /> methods.</para>
</item>
<item>
<para>Create a <see cref="T:System.Net.Sockets.TcpClient" /> using the host name and port number of the remote host. This constructor will automatically attempt a connection.</para>
</item>
</list>
<block subset="none" type="note">
<para>If you want to send connectionless datagrams in synchronous blocking mode, use the <see cref="T:System.Net.Sockets.UdpClient" /> class.</para>
</block>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Provides client connections for TCP network services.</para>
</summary>
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public TcpClient ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor() cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue />
<Parameters />
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>This constructor creates a new <see cref="T:System.Net.Sockets.TcpClient" /> and allows the underlying service provider to assign the most appropriate local IP address and port number. You must first call the <see cref="M:System.Net.Sockets.TcpClient.Connect(System.String,System.Int32)" /> method before sending and receiving data.</para>
<block subset="none" type="note">
<para>This constructor works only with IPv4 address types.</para>
</block>
<block subset="none" type="note">
<para>This member outputs trace information when you enable network tracing in your application. For more information, see <format type="text/html"><a href="E993B7C3-087F-45D8-9C02-9DDED936D804">[&lt;topic://conUsingNetworkTracing&gt;]</a></format>.</para>
</block>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Initializes a new instance of the <see cref="T:System.Net.Sockets.TcpClient" /> class.</para>
</summary>
</Docs>
</Member>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public TcpClient (System.Net.IPEndPoint localEP);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(class System.Net.IPEndPoint localEP) cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue />
<Parameters>
<Parameter Name="localEP" Type="System.Net.IPEndPoint" />
</Parameters>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>This constructor creates a new <see cref="T:System.Net.Sockets.TcpClient" /> and binds it to the <see cref="T:System.Net.IPEndPoint" /> specified by the <paramref name="localEP" /> parameter. Before you call this constructor, you must create an <see cref="T:System.Net.IPEndPoint" /> using the IP address and port number from which you intend to send and receive data. You do not need to specify a local IP address and port number before connecting and communicating. If you create a <see cref="T:System.Net.Sockets.TcpClient" /> using any other constructor, the underlying service provider will assign the most appropriate local IP address and port number.</para>
<para>You must call the <see cref="M:System.Net.Sockets.TcpClient.Connect(System.String,System.Int32)" /> method before sending and receiving data.</para>
<block subset="none" type="note">
<para>This member outputs trace information when you enable network tracing in your application. For more information, see <format type="text/html"><a href="E993B7C3-087F-45D8-9C02-9DDED936D804">[&lt;topic://conUsingNetworkTracing&gt;]</a></format>.</para>
</block>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Initializes a new instance of the <see cref="T:System.Net.Sockets.TcpClient" /> class and binds it to the specified local endpoint.</para>
</summary>
<param name="localEP">
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Net.IPEndPoint" /> to which you bind the TCP <see cref="T:System.Net.Sockets.Socket" />. </param>
</Docs>
</Member>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public TcpClient (System.Net.Sockets.AddressFamily family);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(valuetype System.Net.Sockets.AddressFamily family) cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<Parameters>
<Parameter Name="family" Type="System.Net.Sockets.AddressFamily" />
</Parameters>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<block subset="none" type="note">
<para>This member outputs trace information when you enable network tracing in your application. For more information, see <format type="text/html"><a href="E993B7C3-087F-45D8-9C02-9DDED936D804">[&lt;topic://conUsingNetworkTracing&gt;]</a></format>.</para>
</block>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Initializes a new instance of the <see cref="T:System.Net.Sockets.TcpClient" /> class with the specified family.</para>
</summary>
<param name="family">
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="P:System.Net.IPAddress.AddressFamily" /> of the IP protocol. </param>
</Docs>
</Member>
<Member MemberName=".ctor">
<MemberSignature Language="C#" Value="public TcpClient (string hostname, int port);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(string hostname, int32 port) cil managed" />
<MemberType>Constructor</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue />
<Parameters>
<Parameter Name="hostname" Type="System.String" />
<Parameter Name="port" Type="System.Int32" />
</Parameters>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>This constructor creates a new <see cref="T:System.Net.Sockets.TcpClient" /> and makes a synchronous connection attempt to the provided host name and port number. The underlying service provider will assign the most appropriate local IP address and port number. <see cref="T:System.Net.Sockets.TcpClient" /> will block until it either connects or fails. This constructor allows you to initialize, resolve the DNS host name, and connect in one convenient step.</para>
<para>If IPv6 is enabled and the <see cref="M:System.Net.Sockets.TcpClient.#ctor(System.String,System.Int32)" /> method is called to connect to a host that resolves to both IPv6 and IPv4 addresses, the connection to the IPv6 address will be attempted first before the IPv4 address. This may have the effect of delaying the time to establish the connection if the host is not listening on the IPv6 address.</para>
<block subset="none" type="note">
<para>If you receive a <see cref="T:System.Net.Sockets.SocketException" />, use <see cref="P:System.Net.Sockets.SocketException.ErrorCode" /> to obtain the specific error code. After you have obtained this code, you can refer to the Windows Sockets version 2 API error code documentation in MSDN for a detailed description of the error.</para>
</block>
<block subset="none" type="note">
<para>This member outputs trace information when you enable network tracing in your application. For more information, see <format type="text/html"><a href="E993B7C3-087F-45D8-9C02-9DDED936D804">[&lt;topic://conUsingNetworkTracing&gt;]</a></format>.</para>
</block>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Initializes a new instance of the <see cref="T:System.Net.Sockets.TcpClient" /> class and connects to the specified port on the specified host.</para>
</summary>
<param name="hostname">
<attribution license="cc4" from="Microsoft" modified="false" />The DNS name of the remote host to which you intend to connect. </param>
<param name="port">
<attribution license="cc4" from="Microsoft" modified="false" />The port number of the remote host to which you intend to connect. </param>
</Docs>
</Member>
<Member MemberName="Active">
<MemberSignature Language="C#" Value="protected bool Active { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance bool Active" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Docs>
<value>To be added: an object of type 'bool'</value>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Classes deriving from <see cref="T:System.Net.Sockets.TcpClient" /> can use this property to determine if a connection attempt has succeeded. It does not monitor the ongoing connection state of <see cref="T:System.Net.Sockets.TcpClient" />. If the remote host closes the connection, <see cref="P:System.Net.Sockets.TcpClient.Active" /> will not be updated. If you are deriving from <see cref="T:System.Net.Sockets.TcpClient" /> and require closer attention to the connection state, use the <see cref="P:System.Net.Sockets.Socket.Connected" /> property of the <see cref="T:System.Net.Sockets.Socket" /> returned by the <see cref="P:System.Net.Sockets.TcpClient.Client" /> method.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Gets or set a value that indicates whether a connection has been made.</para>
</summary>
</Docs>
</Member>
<Member MemberName="Available">
<MemberSignature Language="C#" Value="public int Available { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance int32 Available" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Docs>
<value>To be added.</value>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>
<see cref="P:System.Net.Sockets.TcpClient.Available" /> is a way to determine whether data is queued for reading. If data is available, call <see cref="M:System.Net.Sockets.NetworkStream.Read(System.Byte[],System.Int32,System.Int32)" /> to get the data. The available data is the total amount of data queued in the network buffer for reading. If no data is queued in the network buffer, <see cref="P:System.Net.Sockets.TcpClient.Available" /> returns 0.</para>
<para>If the remote host shuts down or closes the connection, <see cref="P:System.Net.Sockets.TcpClient.Available" /> may throw a <see cref="T:System.Net.Sockets.SocketException" />. If you receive a <see cref="T:System.Net.Sockets.SocketException" />, use <see cref="P:System.Net.Sockets.SocketException.ErrorCode" /> to obtain the specific error code. After you have obtained this code, you can refer to the Windows Sockets version 2 API error code documentation in the MSDN library at <see cref="http://msdn.microsoft.com/library">http://msdn.microsoft.com/library</see><see cref="">/</see> for a detailed description of the error.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Gets the amount of data that has been received from the network and is available to be read.</para>
</summary>
</Docs>
</Member>
<Member MemberName="BeginConnect">
<MemberSignature Language="C#" Value="public IAsyncResult BeginConnect (System.Net.IPAddress address, int port, AsyncCallback requestCallback, object state);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.IAsyncResult BeginConnect(class System.Net.IPAddress address, int32 port, class System.AsyncCallback requestCallback, object state) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.IAsyncResult</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="address" Type="System.Net.IPAddress" />
<Parameter Name="port" Type="System.Int32" />
<Parameter Name="requestCallback" Type="System.AsyncCallback" />
<Parameter Name="state" Type="System.Object" />
</Parameters>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The asynchronous <see cref="M:System.Net.Sockets.TcpClient.BeginConnect(System.Net.IPAddress,System.Int32,System.AsyncCallback,System.Object)" /> operation must be completed by calling the <see cref="M:System.Net.Sockets.TcpClient.EndConnect(System.IAsyncResult)" /> method. Typically, the method is invoked by the <paramref name="asyncCallback" /> delegate.</para>
<para>This method does not block until the operation completes. To block until the operation completes, use one of the <see cref="Overload:System.Net.Sockets.TcpClient.Connect" /> method overloads.</para>
<para>For detailed information about using the asynchronous programming model, see <format type="text/html"><a href="41972034-92ed-450a-9664-ab93fcc6f1fb">Asynchronous Programming Overview</a></format>.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>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" />).</para>
</summary>
<returns>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>An <see cref="T:System.IAsyncResult" /> object that references the asynchronous connection.</para>
</returns>
<param name="address">
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Net.IPAddress" /> of the remote host.</param>
<param name="port">
<attribution license="cc4" from="Microsoft" modified="false" />The port number of the remote host.</param>
<param name="requestCallback">
<attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.AsyncCallback" /> delegate that references the method to invoke when the operation is complete. </param>
<param name="state">
<attribution license="cc4" from="Microsoft" modified="false" />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>
</Docs>
</Member>
<Member MemberName="BeginConnect">
<MemberSignature Language="C#" Value="public IAsyncResult BeginConnect (System.Net.IPAddress[] addresses, int port, AsyncCallback requestCallback, object state);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.IAsyncResult BeginConnect(class System.Net.IPAddress[] addresses, int32 port, class System.AsyncCallback requestCallback, object state) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.IAsyncResult</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="addresses" Type="System.Net.IPAddress[]" />
<Parameter Name="port" Type="System.Int32" />
<Parameter Name="requestCallback" Type="System.AsyncCallback" />
<Parameter Name="state" Type="System.Object" />
</Parameters>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The asynchronous <see cref="M:System.Net.Sockets.TcpClient.BeginConnect(System.Net.IPAddress,System.Int32,System.AsyncCallback,System.Object)" /> operation must be completed by calling the <see cref="M:System.Net.Sockets.TcpClient.EndConnect(System.IAsyncResult)" /> method. Typically, the method is invoked by the <paramref name="asyncCallback" /> delegate.</para>
<para>This method does not block until the operation completes. To block until the operation completes, use one of the <see cref="Overload:System.Net.Sockets.TcpClient.Connect" /> method overloads.</para>
<para>For detailed information about using the asynchronous programming model, see <format type="text/html"><a href="41972034-92ed-450a-9664-ab93fcc6f1fb">Asynchronous Programming Overview</a></format>.</para>
<para>This method is typically used immediately after a call to the <see cref="M:System.Net.Dns.BeginGetHostAddresses(System.String,System.AsyncCallback,System.Object)" /> method, which can return multiple IP addresses for a single host.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>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" />).</para>
</summary>
<returns>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>An <see cref="T:System.IAsyncResult" /> object that references the asynchronous connection.</para>
</returns>
<param name="addresses">
<attribution license="cc4" from="Microsoft" modified="false" />At least one <see cref="T:System.Net.IPAddress" /> that designates the remote hosts.</param>
<param name="port">
<attribution license="cc4" from="Microsoft" modified="false" />The port number of the remote hosts.</param>
<param name="requestCallback">
<attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.AsyncCallback" /> delegate that references the method to invoke when the operation is complete.</param>
<param name="state">
<attribution license="cc4" from="Microsoft" modified="false" />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>
</Docs>
</Member>
<Member MemberName="BeginConnect">
<MemberSignature Language="C#" Value="public IAsyncResult BeginConnect (string host, int port, AsyncCallback requestCallback, object state);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.IAsyncResult BeginConnect(string host, int32 port, class System.AsyncCallback requestCallback, object state) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.IAsyncResult</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="host" Type="System.String" />
<Parameter Name="port" Type="System.Int32" />
<Parameter Name="requestCallback" Type="System.AsyncCallback" />
<Parameter Name="state" Type="System.Object" />
</Parameters>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The asynchronous <see cref="M:System.Net.Sockets.TcpClient.BeginConnect(System.String,System.Int32,System.AsyncCallback,System.Object)" /> operation must be completed by calling the <see cref="M:System.Net.Sockets.TcpClient.EndConnect(System.IAsyncResult)" /> method. Typically, the method is invoked by the <paramref name="asyncCallback" /> delegate.</para>
<para>This method does not block until the operation completes. To block until the operation completes, use one of the <see cref="Overload:System.Net.Sockets.TcpClient.Connect" /> method overloads.</para>
<para>For detailed information about using the asynchronous programming model, see <format type="text/html"><a href="41972034-92ed-450a-9664-ab93fcc6f1fb">Asynchronous Programming Overview</a></format>.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>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" />).</para>
</summary>
<returns>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>An <see cref="T:System.IAsyncResult" /> object that references the asynchronous connection.</para>
</returns>
<param name="host">
<attribution license="cc4" from="Microsoft" modified="false" />The name of the remote host.</param>
<param name="port">
<attribution license="cc4" from="Microsoft" modified="false" />The port number of the remote host.</param>
<param name="requestCallback">
<attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.AsyncCallback" /> delegate that references the method to invoke when the operation is complete.</param>
<param name="state">
<attribution license="cc4" from="Microsoft" modified="false" />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>
</Docs>
</Member>
<Member MemberName="Client">
<MemberSignature Language="C#" Value="public System.Net.Sockets.Socket Client { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance class System.Net.Sockets.Socket Client" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Net.Sockets.Socket</ReturnType>
</ReturnValue>
<Docs>
<value>The <see cref="T:System.Net.Sockets.Socket" />.</value>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>
<see cref="T:System.Net.Sockets.TcpClient" /> creates a <see cref="T:System.Net.Sockets.Socket" /> to send and receive data over a network. Classes deriving from <see cref="T:System.Net.Sockets.TcpClient" /> can use this property to get or set this <see cref="T:System.Net.Sockets.Socket" />. Use the underlying <see cref="T:System.Net.Sockets.Socket" /> returned from <see cref="P:System.Net.Sockets.TcpClient.Client" /> if you require access beyond that which <see cref="T:System.Net.Sockets.TcpClient" /> provides. You can also use <see cref="P:System.Net.Sockets.TcpClient.Client" /> to set the underlying <see cref="T:System.Net.Sockets.Socket" /> to an existing <see cref="T:System.Net.Sockets.Socket" />. This might be useful if you want to take advantage of the simplicity of <see cref="T:System.Net.Sockets.TcpClient" /> using a pre-existing <see cref="T:System.Net.Sockets.Socket" />.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Gets or sets the underlying <see cref="T:System.Net.Sockets.Socket" />.</para>
</summary>
</Docs>
</Member>
<Member MemberName="Close">
<MemberSignature Language="C#" Value="public void Close ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Close() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The <see cref="M:System.Net.Sockets.TcpClient.Close" /> method marks the instance as disposed and requests that the associated <see cref="T:System.Net.Sockets.Socket" /> close the TCP connection. Based on the <see cref="P:System.Net.Sockets.TcpClient.LingerState" /> property, the TCP connection may stay open for some time after the <see cref="M:System.Net.Sockets.TcpClient.Close" /> method is called when data remains to be sent. There is no notification provided when the underlying connection has completed closing. </para>
<para>Calling this method will eventually result in the close of the associated <see cref="T:System.Net.Sockets.Socket" /> and will also close the associated <see cref="T:System.Net.Sockets.NetworkStream" /> that is used to send and receive data if one was created.</para>
<block subset="none" type="note">
<para>This member outputs trace information when you enable network tracing in your application. For more information, see <format type="text/html"><a href="E993B7C3-087F-45D8-9C02-9DDED936D804">[&lt;topic://conUsingNetworkTracing&gt;]</a></format>.</para>
</block>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Disposes this <see cref="T:System.Net.Sockets.TcpClient" /> instance and requests that the underlying TCP connection be closed.</para>
</summary>
</Docs>
</Member>
<Member MemberName="Connect">
<MemberSignature Language="C#" Value="public void Connect (System.Net.IPEndPoint remoteEP);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Connect(class System.Net.IPEndPoint remoteEP) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="remoteEP" Type="System.Net.IPEndPoint" />
</Parameters>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Call this method to establish a synchronous remote host connection to the specified <see cref="T:System.Net.IPEndPoint" />. Before you call <see cref="M:System.Net.Sockets.TcpClient.Connect(System.String,System.Int32)" /> you must create an instance of the <see cref="T:System.Net.IPEndPoint" /> class using an IP address and a port number. Use this <see cref="T:System.Net.IPEndPoint" /> as the <paramref name="remoteEP" /> parameter. The <see cref="M:System.Net.Sockets.TcpClient.Connect(System.String,System.Int32)" /> method will block until it either connects or fails. After connecting with the remote host, use the <see cref="M:System.Net.Sockets.TcpClient.GetStream" /> method to obtain the underlying <see cref="T:System.Net.Sockets.NetworkStream" />. Use this <see cref="T:System.Net.Sockets.NetworkStream" /> to send and receive data.</para>
<block subset="none" type="note">
<para>If you receive a <see cref="T:System.Net.Sockets.SocketException" />, use <see cref="P:System.Net.Sockets.SocketException.ErrorCode" /> to obtain the specific error code. After you have obtained this code, you can refer to the Windows Sockets version 2 API error code documentation in MSDN for a detailed description of the error.</para>
</block>
<block subset="none" type="note">
<para>This member outputs trace information when you enable network tracing in your application. For more information, see <format type="text/html"><a href="E993B7C3-087F-45D8-9C02-9DDED936D804">[&lt;topic://conUsingNetworkTracing&gt;]</a></format></para>
</block>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Connects the client to a remote TCP host using the specified remote network endpoint.</para>
</summary>
<param name="remoteEP">
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Net.IPEndPoint" /> to which you intend to connect. </param>
</Docs>
</Member>
<Member MemberName="Connect">
<MemberSignature Language="C#" Value="public void Connect (System.Net.IPAddress address, int port);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Connect(class System.Net.IPAddress address, int32 port) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="address" Type="System.Net.IPAddress" />
<Parameter Name="port" Type="System.Int32" />
</Parameters>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Call this method to establish a synchronous remote host connection to the specified <see cref="T:System.Net.IPAddress" /> and port number. The <see cref="M:System.Net.Sockets.TcpClient.Connect(System.String,System.Int32)" /> method will block until it either connects or fails. After connecting with the remote host, use the <see cref="M:System.Net.Sockets.TcpClient.GetStream" /> method to obtain the underlying <see cref="T:System.Net.Sockets.NetworkStream" />. Use this <see cref="T:System.Net.Sockets.NetworkStream" /> to send and receive data.</para>
<block subset="none" type="note">
<para>If you receive a <see cref="T:System.Net.Sockets.SocketException" />, use <see cref="P:System.Net.Sockets.SocketException.ErrorCode" /> to obtain the specific error code. After you have obtained this code, you can refer to the Windows Sockets version 2 API error code documentation in MSDN for a detailed description of the error.</para>
</block>
<block subset="none" type="note">
<para>This member outputs trace information when you enable network tracing in your application. For more information, see <format type="text/html"><a href="E993B7C3-087F-45D8-9C02-9DDED936D804">[&lt;topic://conUsingNetworkTracing&gt;]</a></format>.</para>
</block>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Connects the client to a remote TCP host using the specified IP address and port number.</para>
</summary>
<param name="address">
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Net.IPAddress" /> of the host to which you intend to connect. </param>
<param name="port">
<attribution license="cc4" from="Microsoft" modified="false" />The port number to which you intend to connect. </param>
</Docs>
</Member>
<Member MemberName="Connect">
<MemberSignature Language="C#" Value="public void Connect (System.Net.IPAddress[] ipAddresses, int port);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Connect(class System.Net.IPAddress[] ipAddresses, int32 port) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="ipAddresses" Type="System.Net.IPAddress[]" />
<Parameter Name="port" Type="System.Int32" />
</Parameters>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>This method is typically used immediately after a call to the <see cref="M:System.Net.Dns.BeginGetHostAddresses(System.String,System.AsyncCallback,System.Object)" /> method, which can return multiple IP addresses for a single host. Call the <see cref="M:System.Net.Sockets.TcpClient.Connect(System.Net.IPAddress[],System.Int32)" /> method to establish a synchronous remote host connection to the host specified by the array of <see cref="T:System.Net.IPAddress" /> elements and the port number. The <see cref="M:System.Net.Sockets.TcpClient.Connect(System.String,System.Int32)" /> method will block until it either connects or fails. After connecting with the remote host, use the <see cref="M:System.Net.Sockets.TcpClient.GetStream" /> method to obtain the underlying <see cref="T:System.Net.Sockets.NetworkStream" />. Use this <see cref="T:System.Net.Sockets.NetworkStream" /> to send and receive data.</para>
<block subset="none" type="note">
<para>If you receive a <see cref="T:System.Net.Sockets.SocketException" />, use <see cref="P:System.Net.Sockets.SocketException.ErrorCode" /> to obtain the specific error code. After you have obtained this code, you can refer to the Windows Sockets version 2 API error code documentation in the MSDN library at <see cref="http://msdn.microsoft.com/library">http://msdn.microsoft.com/library</see> for a detailed description of the error.</para>
</block>
<block subset="none" type="note">
<para>This member outputs trace information when you enable network tracing in your application. For more information, see <format type="text/html"><a href="E993B7C3-087F-45D8-9C02-9DDED936D804">[&lt;topic://conUsingNetworkTracing&gt;]</a></format>.</para>
</block>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Connects the client to a remote TCP host using the specified IP addresses and port number.</para>
</summary>
<param name="ipAddresses">
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Net.IPAddress" /> array of the host to which you intend to connect.</param>
<param name="port">
<attribution license="cc4" from="Microsoft" modified="false" />The port number to which you intend to connect.</param>
</Docs>
</Member>
<Member MemberName="Connect">
<MemberSignature Language="C#" Value="public void Connect (string hostname, int port);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance void Connect(string hostname, int32 port) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="hostname" Type="System.String" />
<Parameter Name="port" Type="System.Int32" />
</Parameters>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Call this method to establish a synchronous remote host connection to the specified host name and port number. The <see cref="M:System.Net.Sockets.TcpClient.Connect(System.String,System.Int32)" /> method will block until it either connects or fails. After connecting with the remote host, use the <see cref="M:System.Net.Sockets.TcpClient.GetStream" /> method to obtain the underlying <see cref="T:System.Net.Sockets.NetworkStream" />. Use this <see cref="T:System.Net.Sockets.NetworkStream" /> to send and receive data.</para>
<para>If IPv6 is enabled and the <see cref="M:System.Net.Sockets.TcpClient.Connect(System.String,System.Int32)" /> method is called to connect to a host that resolves to both IPv6 and IPv4 addresses, the connection to the IPv6 address will be attempted first before the IPv4 address. This may have the effect of delaying the time to establish the connection if the host is not listening on the IPv6 address.</para>
<block subset="none" type="note">
<para>If you receive a <see cref="T:System.Net.Sockets.SocketException" />, use <see cref="P:System.Net.Sockets.SocketException.ErrorCode" /> to obtain the specific error code. After you have obtained this code, you can refer to the Windows Sockets version 2 API error code documentation in MSDN for a detailed description of the error.</para>
</block>
<block subset="none" type="note">
<para>This member outputs trace information when you enable network tracing in your application. For more information, see <format type="text/html"><a href="E993B7C3-087F-45D8-9C02-9DDED936D804">[&lt;topic://conUsingNetworkTracing&gt;]</a></format>.</para>
</block>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Connects the client to the specified port on the specified host.</para>
</summary>
<param name="hostname">
<attribution license="cc4" from="Microsoft" modified="false" />The DNS name of the remote host to which you intend to connect. </param>
<param name="port">
<attribution license="cc4" from="Microsoft" modified="false" />The port number of the remote host to which you intend to connect. </param>
</Docs>
</Member>
<Member MemberName="ConnectAsync">
<MemberSignature Language="C#" Value="public System.Threading.Tasks.Task ConnectAsync (System.Net.IPAddress address, int port);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.Threading.Tasks.Task ConnectAsync(class System.Net.IPAddress address, int32 port) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Threading.Tasks.Task</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="address" Type="System.Net.IPAddress" />
<Parameter Name="port" Type="System.Int32" />
</Parameters>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>This operation will not block. The returned Returns <see cref="T:System.Threading.Tasks.Task" /> object will complete after the TCP connection has been established. This method does not block the calling thread while the connection request is underway.</para>
<para>Call this method to establish a synchronous remote host connection to the specified <see cref="T:System.Net.IPAddress" /> and port number as an asynchronous operation. After connecting with the remote host, use the <see cref="M:System.Net.Sockets.TcpClient.GetStream" /> method to obtain the underlying <see cref="T:System.Net.Sockets.NetworkStream" />. Use this <see cref="T:System.Net.Sockets.NetworkStream" /> to send and receive data.</para>
<block subset="none" type="note">
<para>If you receive a <see cref="T:System.Net.Sockets.SocketException" />, use <see cref="P:System.Net.Sockets.SocketException.ErrorCode" /> to obtain the specific error code. After you have obtained this code, you can refer to the Windows Sockets version 2 API error code documentation in MSDN for a detailed description of the error.</para>
</block>
<block subset="none" type="note">
<para>This member outputs trace information when you enable network tracing in your application. For more information, see <format type="text/html"><a href="E993B7C3-087F-45D8-9C02-9DDED936D804">[&lt;topic://conUsingNetworkTracing&gt;]</a></format>.</para>
</block>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Connects the client to a remote TCP host using the specified IP address and port number as an asynchronous operation.</para>
</summary>
<returns>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Returns <see cref="T:System.Threading.Tasks.Task" /></para>
<para>The task object representing the asynchronous operation.</para>
</returns>
<param name="address">
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Net.IPAddress" /> of the host to which you intend to connect. </param>
<param name="port">
<attribution license="cc4" from="Microsoft" modified="false" />The port number to which you intend to connect. </param>
</Docs>
</Member>
<Member MemberName="ConnectAsync">
<MemberSignature Language="C#" Value="public System.Threading.Tasks.Task ConnectAsync (System.Net.IPAddress[] addresses, int port);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.Threading.Tasks.Task ConnectAsync(class System.Net.IPAddress[] addresses, int32 port) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Threading.Tasks.Task</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="addresses" Type="System.Net.IPAddress[]" />
<Parameter Name="port" Type="System.Int32" />
</Parameters>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>This operation will not block. The returned Returns <see cref="T:System.Threading.Tasks.Task" /> object will complete after the TCP connection has been established. This method does not block the calling thread while the connection request is underway.</para>
<para>This method is typically used immediately after a call to the <see cref="M:System.Net.Dns.BeginGetHostAddresses(System.String,System.AsyncCallback,System.Object)" /> method, which can return multiple IP addresses for a single host. Call this method to establish a synchronous remote host connection to the host specified by the array of <see cref="T:System.Net.IPAddress" /> elements and the port number as an asynchronous operation. After connecting with the remote host, use the <see cref="M:System.Net.Sockets.TcpClient.GetStream" /> method to obtain the underlying <see cref="T:System.Net.Sockets.NetworkStream" />. Use this <see cref="T:System.Net.Sockets.NetworkStream" /> to send and receive data.</para>
<block subset="none" type="note">
<para>If you receive a <see cref="T:System.Net.Sockets.SocketException" />, use <see cref="P:System.Net.Sockets.SocketException.ErrorCode" /> to obtain the specific error code. After you have obtained this code, you can refer to the Windows Sockets version 2 API error code documentation in the MSDN library at <see cref="http://msdn.microsoft.com/library">http://msdn.microsoft.com/library</see> for a detailed description of the error.</para>
</block>
<block subset="none" type="note">
<para>This member outputs trace information when you enable network tracing in your application. For more information, see <format type="text/html"><a href="E993B7C3-087F-45D8-9C02-9DDED936D804">[&lt;topic://conUsingNetworkTracing&gt;]</a></format>.</para>
</block>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Connects the client to a remote TCP host using the specified IP addresses and port number as an asynchronous operation.</para>
</summary>
<returns>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Returns <see cref="T:System.Threading.Tasks.Task" /></para>
<para>The task object representing the asynchronous operation.</para>
</returns>
<param name="addresses">
<attribution license="cc4" from="Microsoft" modified="false" />The <see cref="T:System.Net.IPAddress" /> array of the host to which you intend to connect.</param>
<param name="port">
<attribution license="cc4" from="Microsoft" modified="false" />The port number to which you intend to connect.</param>
</Docs>
</Member>
<Member MemberName="ConnectAsync">
<MemberSignature Language="C#" Value="public System.Threading.Tasks.Task ConnectAsync (string host, int port);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.Threading.Tasks.Task ConnectAsync(string host, int32 port) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Threading.Tasks.Task</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="host" Type="System.String" />
<Parameter Name="port" Type="System.Int32" />
</Parameters>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>This operation will not block. The returned Returns <see cref="T:System.Threading.Tasks.Task" /> object will complete after the TCP connection has been established. This method does not block the calling thread while the connection request is underway.</para>
<para>Call this method to establish a synchronous remote host connection to the specified host name and port number as an asynchronous operation. After connecting with the remote host, use the <see cref="M:System.Net.Sockets.TcpClient.GetStream" /> method to obtain the underlying <see cref="T:System.Net.Sockets.NetworkStream" />. Use this <see cref="T:System.Net.Sockets.NetworkStream" /> to send and receive data.</para>
<para>If IPv6 is enabled and the <see cref="M:System.Net.Sockets.TcpClient.AsyncConnect(System.String,System.Int32)" /> method is called to connect to a host that resolves to both IPv6 and IPv4 addresses, the connection to the IPv6 address will be attempted first before the IPv4 address. This may have the effect of delaying the time to establish the connection if the host is not listening on the IPv6 address.</para>
<block subset="none" type="note">
<para>If you receive a <see cref="T:System.Net.Sockets.SocketException" />, use <see cref="P:System.Net.Sockets.SocketException.ErrorCode" /> to obtain the specific error code. After you have obtained this code, you can refer to the Windows Sockets version 2 API error code documentation in MSDN for a detailed description of the error.</para>
</block>
<block subset="none" type="note">
<para>This member outputs trace information when you enable network tracing in your application. For more information, see <format type="text/html"><a href="E993B7C3-087F-45D8-9C02-9DDED936D804">[&lt;topic://conUsingNetworkTracing&gt;]</a></format>.</para>
</block>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Connects the client to the specified TCP port on the specified host as an asynchronous operation.</para>
</summary>
<returns>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Returns <see cref="T:System.Threading.Tasks.Task" /></para>
<para>The task object representing the asynchronous operation.</para>
</returns>
<param name="host">
<attribution license="cc4" from="Microsoft" modified="false" />The DNS name of the remote host to which you intend to connect. </param>
<param name="port">
<attribution license="cc4" from="Microsoft" modified="false" />The port number of the remote host to which you intend to connect. </param>
</Docs>
</Member>
<Member MemberName="Connected">
<MemberSignature Language="C#" Value="public bool Connected { get; }" />
<MemberSignature Language="ILAsm" Value=".property instance bool Connected" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Docs>
<value>To be added.</value>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The <see cref="P:System.Net.Sockets.TcpClient.Connected" /> property gets the connection state of the <see cref="P:System.Net.Sockets.TcpClient.Client" /> socket as of the last I/O operation. When it returns false, the <see cref="P:System.Net.Sockets.TcpClient.Client" /> socket was either never connected, or is no longer connected.</para>
<para>Because the <see cref="P:System.Net.Sockets.TcpClient.Connected" /> property only reflects the state of the connection as of the most recent operation, you should attempt to send or receive a message to determine the current state. After the message send fails, this property no longer returns true. Note that this behavior is by design. You cannot reliably test the state of the connection because, in the time between the test and a send/receive, the connection could have been lost. Your code should assume the socket is connected, and gracefully handle failed transmissions.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>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.</para>
</summary>
</Docs>
</Member>
<Member MemberName="Dispose">
<MemberSignature Language="C#" Value="protected virtual void Dispose (bool disposing);" />
<MemberSignature Language="ILAsm" Value=".method familyhidebysig newslot virtual instance void Dispose(bool disposing) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="disposing" Type="System.Boolean" />
</Parameters>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>This method is called by the public Dispose() method and the <see cref="M:System.Object.Finalize" /> method. Dispose() invokes this method with the <paramref name="disposing" /> parameter set to true. <see cref="M:System.Object.Finalize" /> invokes this method with <paramref name="disposing" /> set to false.</para>
<para>When the <paramref name="disposing" /> parameter is true, this method releases all resources held by any managed objects that this <see cref="T:System.Net.Sockets.TcpClient" /> references. It does this by invoking the Dispose() method of each referenced object.</para>
<block subset="none" type="note">
<para>This member outputs trace information when you enable network tracing in your application. For more information, see <format type="text/html"><a href="E993B7C3-087F-45D8-9C02-9DDED936D804">[&lt;topic://conUsingNetworkTracing&gt;]</a></format>.</para>
</block>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Releases the unmanaged resources used by the <see cref="T:System.Net.Sockets.TcpClient" /> and optionally releases the managed resources.</para>
</summary>
<param name="disposing">
<attribution license="cc4" from="Microsoft" modified="false" />Set to true to release both managed and unmanaged resources; false to release only unmanaged resources. </param>
</Docs>
</Member>
<Member MemberName="EndConnect">
<MemberSignature Language="C#" Value="public void EndConnect (IAsyncResult asyncResult);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance void EndConnect(class System.IAsyncResult asyncResult) cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters>
<Parameter Name="asyncResult" Type="System.IAsyncResult" />
</Parameters>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>This method blocks until the operation is complete. To perform this operation synchronously, use a <see cref="Overload:System.Net.Sockets.TcpClient.Connect" /> method.</para>
<block subset="none" type="note">
<para>If you receive a <see cref="T:System.Net.Sockets.SocketException" />, use <see cref="P:System.Net.Sockets.SocketException.ErrorCode" /> to obtain the specific error code. After you have obtained this code, you can refer to the Windows Sockets version 2 API error code documentation in the MSDN library at <see cref="http://msdn.microsoft.com/library">http://msdn.microsoft.com/library</see> for a detailed description of the error.</para>
</block>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Ends a pending asynchronous connection attempt.</para>
</summary>
<param name="asyncResult">
<attribution license="cc4" from="Microsoft" modified="false" />An <see cref="T:System.IAsyncResult" /> object returned by a call to <see cref="Overload:System.Net.Sockets.TcpClient.BeginConnect" />.</param>
</Docs>
</Member>
<Member MemberName="ExclusiveAddressUse">
<MemberSignature Language="C#" Value="public bool ExclusiveAddressUse { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance bool ExclusiveAddressUse" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Docs>
<value>To be added.</value>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>By default, multiple clients can use a specific port; however, only one of the clients can perform operations on the network traffic sent to the port. You can use the <see cref="P:System.Net.Sockets.TcpClient.ExclusiveAddressUse" /> property to prevent multiple clients from using a specific port.</para>
<para>This property must be set before the underlying socket is bound to a client port. If you call <see cref="Overload:System.Net.Sockets.TcpClient.Connect" />, <see cref="Overload:System.Net.Sockets.TcpClient.BeginConnect" />, <see cref="M:System.Net.Sockets.TcpClient.#ctor(System.Net.IPEndPoint)" />, or <see cref="M:System.Net.Sockets.TcpClient.#ctor(System.String,System.Int32)" />, the client port is bound as a side effect of the method, and you cannot subsequently set the <see cref="P:System.Net.Sockets.TcpClient.ExclusiveAddressUse" /> property </para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>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.</para>
</summary>
</Docs>
</Member>
<Member MemberName="Finalize">
<MemberSignature Language="C#" Value="~TcpClient ();" />
<MemberSignature Language="ILAsm" Value=".method familyhidebysig virtual instance void Finalize() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>This method overrides <see cref="M:System.Object.Finalize" />. Application code should not call this method; an object's <see cref="M:System.Object.Finalize" /> method is automatically invoked during garbage collection, unless finalization by the garbage collector has been disabled by a call to the <see cref="M:System.GC.SuppressFinalize(System.Object)" /> method.</para>
<para>The <see cref="T:System.Net.Sockets.TcpClient" /> class finalizer closes the TCP connection and releases all managed resources associated with the <see cref="T:System.Net.Sockets.TcpClient" />. These resources include the underlying <see cref="T:System.Net.Sockets.Socket" /> used for connecting with the remote host, and the <see cref="T:System.Net.Sockets.NetworkStream" /> used to send and receive data. The finalizer does not release any unmanaged resources.</para>
<para>For more information, see <format type="text/html"><a href="FD376774-1643-499B-869E-9546A3AEEA70">[&lt;topic://cpconFinalizeMethodscDestructors&gt;]</a></format>, <format type="text/html"><a href="A17B0066-71C2-4BA4-9822-8E19332FC213">[&lt;topic://cpconCleaningUpUnmanagedResources&gt;]</a></format>, and <format type="text/html"><a href="8026CB68-FE93-43FC-96C1-C09AD7D64CD3">[&lt;topic://cpconOverridingFinalizeMethod&gt;]</a></format>.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Frees resources used by the <see cref="T:System.Net.Sockets.TcpClient" /> class.</para>
</summary>
</Docs>
</Member>
<Member MemberName="GetStream">
<MemberSignature Language="C#" Value="public System.Net.Sockets.NetworkStream GetStream ();" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig instance class System.Net.Sockets.NetworkStream GetStream() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Net.Sockets.NetworkStream</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>
<see cref="M:System.Net.Sockets.TcpClient.GetStream" /> returns a <see cref="T:System.Net.Sockets.NetworkStream" /> that you can use to send and receive data. The <see cref="T:System.Net.Sockets.NetworkStream" /> class inherits from the <see cref="T:System.IO.Stream" /> class, which provides a rich collection of methods and properties used to facilitate network communications.</para>
<para>You must call the <see cref="M:System.Net.Sockets.TcpClient.Connect(System.String,System.Int32)" /> method first, or the <see cref="M:System.Net.Sockets.TcpClient.GetStream" /> method will throw an <see cref="T:System.InvalidOperationException" />. After you have obtained the <see cref="T:System.Net.Sockets.NetworkStream" />, call the <see cref="M:System.Net.Sockets.NetworkStream.Write(System.Byte[],System.Int32,System.Int32)" /> method to send data to the remote host. Call the <see cref="M:System.Net.Sockets.NetworkStream.Read(System.Byte[],System.Int32,System.Int32)" /> method to receive data arriving from the remote host. Both of these methods block until the specified operation is performed. You can avoid blocking on a read operation by checking the <see cref="P:System.Net.Sockets.NetworkStream.DataAvailable" /> property. A true value means that data has arrived from the remote host and is available for reading. In this case, <see cref="M:System.Net.Sockets.NetworkStream.Read(System.Byte[],System.Int32,System.Int32)" /> is guaranteed to complete immediately. If the remote host has shutdown its connection, <see cref="M:System.Net.Sockets.NetworkStream.Read(System.Byte[],System.Int32,System.Int32)" /> will immediately return with zero bytes.</para>
<block subset="none" type="note">
<para>You must close the <see cref="T:System.Net.Sockets.NetworkStream" /> when you are through sending and receiving data. Closing <see cref="T:System.Net.Sockets.TcpClient" /> does not release the <see cref="T:System.Net.Sockets.NetworkStream" />.</para>
</block>
<block subset="none" type="note">
<para>If you receive a <see cref="T:System.Net.Sockets.SocketException" />, use <see cref="P:System.Net.Sockets.SocketException.ErrorCode" /> to obtain the specific error code. After you have obtained this code, you can refer to the Windows Sockets version 2 API error code documentation in MSDN for a detailed description of the error.</para>
</block>
<block subset="none" type="note">
<para>This member outputs trace information when you enable network tracing in your application. For more information, see <format type="text/html"><a href="E993B7C3-087F-45D8-9C02-9DDED936D804">[&lt;topic://conUsingNetworkTracing&gt;]</a></format>.</para>
</block>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Returns the <see cref="T:System.Net.Sockets.NetworkStream" /> used to send and receive data.</para>
</summary>
<returns>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The underlying <see cref="T:System.Net.Sockets.NetworkStream" />.</para>
</returns>
</Docs>
</Member>
<Member MemberName="LingerState">
<MemberSignature Language="C#" Value="public System.Net.Sockets.LingerOption LingerState { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance class System.Net.Sockets.LingerOption LingerState" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Net.Sockets.LingerOption</ReturnType>
</ReturnValue>
<Parameters>
</Parameters>
<Docs>
<value>To be added: an object of type 'LingerOption'</value>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The <see cref="P:System.Net.Sockets.TcpClient.LingerState" /> property changes the way <see cref="M:System.Net.Sockets.Socket.Close" /> method behaves. This property when set modifies the conditions under which the connection can be reset by Winsock. Connection resets can still occur based on the IP protocol behavior. </para>
<para>This property controls the length of time that the TCP connection will remain open after a call to <see cref="M:System.Net.Sockets.TcpClient.Close" /> when data remains to be sent. When you call the <see cref="M:System.Net.Sockets.NetworkStream.Write(System.Byte[],System.Int32,System.Int32)" /> method, data is placed in the outgoing network buffer. This property can be used to ensure that this data is sent to the remote host before the <see cref="M:System.Net.Sockets.TcpClient.Close" /> method drops the connection. </para>
<para>To enable lingering, create a <see cref="T:System.Net.Sockets.LingerOption" /> instance containing the desired values, and set the <see cref="P:System.Net.Sockets.TcpClient.LingerState" /> property to this instance.</para>
<para>The following table describes the behavior of the <see cref="M:System.Net.Sockets.TcpClient.Close" /> method for the possible values of the <see cref="P:System.Net.Sockets.LingerOption.Enabled" /> property and the <see cref="P:System.Net.Sockets.LingerOption.LingerTime" /> property stored in the <see cref="P:System.Net.Sockets.TcpClient.LingerState" /> property.</para>
<list type="table">
<listheader>
<item>
<term>
<para>LingerState.Enabled</para>
</term>
<description>
<para>LingerState.LingerTime</para>
</description>
<description>
<para>Behavior</para>
</description>
</item>
</listheader>
<item>
<term>
<para>false (disabled), the default value </para>
</term>
<description>
<para>The time-out is not applicable, (default).</para>
</description>
<description>
<para>Attempts to send pending data until the default IP protocol time-out expires. </para>
</description>
</item>
<item>
<term>
<para>true (enabled)</para>
</term>
<description>
<para>A nonzero time-out</para>
</description>
<description>
<para>Attempts to send pending data until the specified time-out expires, and if the attempt fails, then Winsock resets the connection. </para>
</description>
</item>
<item>
<term>
<para>true (enabled)</para>
</term>
<description>
<para>A zero timeout.</para>
</description>
<description>
<para>Discards any pending data and Winsock resets the connection. </para>
</description>
</item>
</list>
<para>The IP stack computes the default IP protocol time-out period to use based on the round trip time of the connection. In most cases, the time-out computed by the stack is more relevant than one defined by an application. This is the default behavior for a socket when the <see cref="P:System.Net.Sockets.TcpClient.LingerState" /> property is not set.</para>
<para>When the <see cref="P:System.Net.Sockets.LingerOption.LingerTime" /> property stored in the <see cref="P:System.Net.Sockets.TcpClient.LingerState" /> property is set greater than the default IP protocol time-out, the default IP protocol time-out will still apply and override. </para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Gets or sets information about the linger state of the associated socket.</para>
</summary>
</Docs>
</Member>
<Member MemberName="NoDelay">
<MemberSignature Language="C#" Value="public bool NoDelay { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance bool NoDelay" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Boolean</ReturnType>
</ReturnValue>
<Parameters>
</Parameters>
<Docs>
<value>To be added: an object of type 'bool'</value>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>When <see cref="P:System.Net.Sockets.TcpClient.NoDelay" /> is false, a <see cref="T:System.Net.Sockets.TcpClient" /> does not send a packet over the network until it has collected a significant amount of outgoing data. Because of the amount of overhead in a TCP segment, sending small amounts of data is inefficient. However, situations do exist where you need to send very small amounts of data or expect immediate responses from each packet you send. Your decision should weigh the relative importance of network efficiency versus application requirements.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Gets or sets a value that disables a delay when send or receive buffers are not full.</para>
</summary>
</Docs>
</Member>
<Member MemberName="ReceiveBufferSize">
<MemberSignature Language="C#" Value="public int ReceiveBufferSize { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance int32 ReceiveBufferSize" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Parameters>
</Parameters>
<Docs>
<value>The buffer size.</value>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The <see cref="P:System.Net.Sockets.TcpClient.ReceiveBufferSize" /> property gets or sets the number of bytes that you are expecting to store in the receive buffer for each read operation. This property actually manipulates the network buffer space allocated for receiving incoming data.</para>
<para>Your network buffer should be at least as large as your application buffer to ensure that the desired data will be available when you call the <see cref="M:System.Net.Sockets.NetworkStream.Read(System.Byte[],System.Int32,System.Int32)" /> method. Use the <see cref="P:System.Net.Sockets.TcpClient.ReceiveBufferSize" /> property to set this size. If your application will be receiving bulk data, you should pass the <see cref="M:System.Net.Sockets.NetworkStream.Read(System.Byte[],System.Int32,System.Int32)" /> method a very large application buffer.</para>
<para>If the network buffer is smaller than the amount of data you request in the <see cref="M:System.Net.Sockets.NetworkStream.Read(System.Byte[],System.Int32,System.Int32)" /> method, you will not be able to retrieve the desired amount of data in one read operation. This incurs the overhead of additional calls to the <see cref="M:System.Net.Sockets.NetworkStream.Read(System.Byte[],System.Int32,System.Int32)" /> method.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Gets or sets the size of the receive buffer.</para>
</summary>
</Docs>
</Member>
<Member MemberName="ReceiveTimeout">
<MemberSignature Language="C#" Value="public int ReceiveTimeout { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance int32 ReceiveTimeout" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Parameters>
</Parameters>
<Docs>
<value>To be added: an object of type 'int'</value>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The <see cref="P:System.Net.Sockets.TcpClient.ReceiveTimeout" /> property determines the amount of time that the <see cref="M:System.Net.Sockets.NetworkStream.Read(System.Byte[],System.Int32,System.Int32)" /> method will block until it is able to receive data. This time is measured in milliseconds. If the time-out expires before <see cref="M:System.Net.Sockets.NetworkStream.Read(System.Byte[],System.Int32,System.Int32)" /> successfully completes, <see cref="T:System.Net.Sockets.TcpClient" /> throws a <see cref="T:System.IO.IOException" />. There is no time-out by default.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>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.</para>
</summary>
</Docs>
</Member>
<Member MemberName="SendBufferSize">
<MemberSignature Language="C#" Value="public int SendBufferSize { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance int32 SendBufferSize" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Parameters>
</Parameters>
<Docs>
<value>The buffer size.</value>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The <see cref="P:System.Net.Sockets.TcpClient.SendBufferSize" /> property gets or sets the number of bytes that you are expecting to send in each call to the <see cref="M:System.Net.Sockets.NetworkStream.Write(System.Byte[],System.Int32,System.Int32)" /> method. This property actually manipulates the network buffer space allocated for send operation.</para>
<para>Your network buffer should be at least as large as your application buffer to ensure that the desired data will be stored and sent in one operation. Use the <see cref="P:System.Net.Sockets.TcpClient.SendBufferSize" /> property to set this size. If your application will be sending bulk data, you should pass the <see cref="M:System.Net.Sockets.NetworkStream.Write(System.Byte[],System.Int32,System.Int32)" /> method a very large application buffer.</para>
<para>If the network buffer is smaller than the amount of data you provide the <see cref="M:System.Net.Sockets.NetworkStream.Write(System.Byte[],System.Int32,System.Int32)" /> method, several network send operations will be performed for every call you make to the <see cref="M:System.Net.Sockets.NetworkStream.Write(System.Byte[],System.Int32,System.Int32)" /> method. You can achieve greater data throughput by ensuring that your network buffer is at least as large as your application buffer.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Gets or sets the size of the send buffer.</para>
</summary>
</Docs>
</Member>
<Member MemberName="SendTimeout">
<MemberSignature Language="C#" Value="public int SendTimeout { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance int32 SendTimeout" />
<MemberType>Property</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Int32</ReturnType>
</ReturnValue>
<Parameters>
</Parameters>
<Docs>
<value>To be added: an object of type 'int'</value>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>The <see cref="P:System.Net.Sockets.TcpClient.SendTimeout" /> property determines the amount of time that the <see cref="M:System.Net.Sockets.Socket.Send(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags)" /> method will block until it is able to return successfully. This time is measured in milliseconds.</para>
<para>After you call the <see cref="M:System.Net.Sockets.NetworkStream.Write(System.Byte[],System.Int32,System.Int32)" /> method, the underlying <see cref="T:System.Net.Sockets.Socket" /> returns the number of bytes actually sent to the host. The <see cref="P:System.Net.Sockets.TcpClient.SendTimeout" /> property determines the amount of time a <see cref="T:System.Net.Sockets.TcpClient" /> will wait before receiving the number of bytes returned. If the time-out expires before the <see cref="M:System.Net.Sockets.Socket.Send(System.Byte[],System.Int32,System.Net.Sockets.SocketFlags)" /> method successfully completes, <see cref="T:System.Net.Sockets.TcpClient" /> will throw a <see cref="T:System.Net.Sockets.SocketException" />. There is no time-out by default.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Gets or sets the amount of time a <see cref="T:System.Net.Sockets.TcpClient" /> will wait for a send operation to complete successfully.</para>
</summary>
</Docs>
</Member>
<Member MemberName="System.IDisposable.Dispose">
<MemberSignature Language="C#" Value="void IDisposable.Dispose ();" />
<MemberSignature Language="ILAsm" Value=".method hidebysig newslot virtual instance void System.IDisposable.Dispose() cil managed" />
<MemberType>Method</MemberType>
<AssemblyInfo>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ReturnValue>
<ReturnType>System.Void</ReturnType>
</ReturnValue>
<Parameters />
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Call <see cref="M:System.Net.Sockets.TcpClient.System#IDisposable#Dispose" /> when you are finished using the <see cref="T:System.Net.Sockets.TcpClient" />. The <see cref="M:System.Net.Sockets.TcpClient.System#IDisposable#Dispose" /> method leaves the <see cref="T:System.Net.Sockets.TcpClient" /> in an unusable state. After calling <see cref="M:System.Net.Sockets.TcpClient.System#IDisposable#Dispose" />, you must release all references to the <see cref="T:System.Net.Sockets.TcpClient" /> so the garbage collector can reclaim the memory that the <see cref="T:System.Net.Sockets.TcpClient" /> was occupying. For more information, see <format type="text/html"><a href="A17B0066-71C2-4BA4-9822-8E19332FC213">[&lt;topic://cpconCleaningUpUnmanagedResources&gt;]</a></format> and <format type="text/html"><a href="EB4E1AF0-3B48-4FBC-AD4E-FC2F64138BF9">[&lt;topic://cpconImplementingDisposeMethod&gt;]</a></format>. </para>
<para>Note: Always call <see cref="M:System.Net.Sockets.TcpClient.System#IDisposable#Dispose" /> before you release your last reference to the <see cref="T:System.Net.Sockets.TcpClient" />. Otherwise, the resources it is using will not be freed until the garbage collector calls the <see cref="T:System.Net.Sockets.TcpClient" /> object's Finalize method.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Releases all resources used by the <see cref="T:System.Net.Sockets.TcpClient" />. </para>
</summary>
</Docs>
</Member>
</Members>
</Type>