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

295 lines
20 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<Type Name="LingerOption" FullName="System.Net.Sockets.LingerOption" FullNameSP="System_Net_Sockets_LingerOption" Maintainer="ecma">
<TypeSignature Language="ILASM" Value=".class public LingerOption extends System.Object" />
<TypeSignature Language="C#" Value="public class LingerOption" />
<TypeSignature Language="ILAsm" Value=".class public auto ansi beforefieldinit LingerOption extends System.Object" />
<MemberOfLibrary>Networking</MemberOfLibrary>
<AssemblyInfo>
<AssemblyName>System</AssemblyName>
<AssemblyPublicKey>[00 00 00 00 00 00 00 00 04 00 00 00 00 00 00 00 ]</AssemblyPublicKey>
<AssemblyVersion>1.0.x.x</AssemblyVersion>
<AssemblyVersion>1.0.5000.0</AssemblyVersion>
<AssemblyVersion>2.0.0.0</AssemblyVersion>
<AssemblyVersion>4.0.0.0</AssemblyVersion>
</AssemblyInfo>
<ThreadingSafetyStatement>All public static members of this type are safe for multithreaded operations. No instance members are guaranteed to be thread safe.</ThreadingSafetyStatement>
<Base>
<BaseTypeName>System.Object</BaseTypeName>
</Base>
<Interfaces />
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>There may still be data available in the outgoing network buffer after an application calls the <see cref="T:System.Net.Sockets.Socket" /> or <see cref="T:System.Net.Sockets.TcpClient" /> method. If you want to specify the amount of time that the <see cref="T:System.Net.Sockets.Socket" /> will attempt to transmit unsent data after closing, create a <see cref="T:System.Net.Sockets.LingerOption" /> with the <paramref name="enable" /> parameter set to true, and the <paramref name="seconds" /> parameter set to the desired amount of time. The <paramref name="seconds" /> parameter is used to indicate how long you would like the <see cref="T:System.Net.Sockets.Socket" /> to remain connected before timing out. If you do not want the <see cref="T:System.Net.Sockets.Socket" /> to stay connected for any length of time after closing, create a <see cref="T:System.Net.Sockets.LingerOption" /> instance with the <paramref name="enable" /> parameter set to true and the <paramref name="seconds" /> parameter set to zero. In this case, the <see cref="T:System.Net.Sockets.Socket" /> will close immediately and any unsent data will be lost. Once created, pass the <see cref="T:System.Net.Sockets.LingerOption" /> to the <see cref="M:System.Net.Sockets.Socket.SetSocketOption(System.Net.Sockets.SocketOptionLevel,System.Net.Sockets.SocketOptionName,System.Int32)" /> method. If you are sending and receiving data with a <see cref="T:System.Net.Sockets.TcpClient" />, then set the <see cref="T:System.Net.Sockets.LingerOption" /> instance in the <see cref="P:System.Net.Sockets.TcpClient.LingerState" /> property.</para>
<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 <see cref="T:System.Net.Sockets.Socket" /> when the <see cref="P:System.Net.Sockets.Socket.LingerState" /> property is not set and for a <see cref="T:System.Net.Sockets.TcpClient" /> when the <see cref="P:System.Net.Sockets.TcpClient.LingerState" /> property is not set.</para>
</remarks>
<summary>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>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.</para>
</summary>
</Docs>
<Members>
<Member MemberName=".ctor">
<MemberSignature Language="ILASM" Value="public rtspecialname specialname instance void .ctor(bool enable, int32 seconds)" />
<MemberSignature Language="C#" Value="public LingerOption (bool enable, int seconds);" />
<MemberSignature Language="ILAsm" Value=".method public hidebysig specialname rtspecialname instance void .ctor(bool enable, int32 seconds) 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="enable" Type="System.Boolean" />
<Parameter Name="seconds" Type="System.Int32" />
</Parameters>
<Docs>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>There may still be data available in the outgoing network buffer after you close the <see cref="T:System.Net.Sockets.Socket" />. Use the <paramref name="enable" /> parameter to specify whether you would like the <see cref="T:System.Net.Sockets.Socket" /> to continue transmitting unsent data after the close method is called. Use the <paramref name="seconds" /> parameter to indicate how long you would like the <see cref="T:System.Net.Sockets.Socket" /> to attempt transferring unsent data before timing out. If you specify true for the <paramref name="enable" /> parameter and 0 for the <paramref name="seconds" /> parameter, the <see cref="T:System.Net.Sockets.Socket" /> will attempt to send data until there is no data left in the outgoing network buffer. If you specify false for the <paramref name="enable" /> parameter, the <see cref="T:System.Net.Sockets.Socket" /> will close immediately and any unsent data will be lost.</para>
<para>The following table describes the behavior on the <see cref="M:System.Net.Sockets.Socket.Close" /> and <see cref="M:System.Net.Sockets.TcpClient.Close" /> methods based on the possible values of the <paramref name="enable" /> and <paramref name="seconds" /> parameters when an T:System.Net.Sockets.LingerOption instance is created and set in the <see cref="P:System.Net.Sockets.Socket.LingerState" /> or <see cref="P:System.Net.Sockets.TcpClient.LingerState" /> property.</para>
<list type="table">
<listheader>
<item>
<term>
<para>
<paramref name="enable" />
</para>
</term>
<description>
<para>
<paramref name="seconds" />
</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 for a connection-oriented socket (TCP, for example) 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. For connection-oriented socket (TCP, for example), 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.Socket.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.Socket.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>Initializes a new instance of the <see cref="T:System.Net.Sockets.LingerOption" /> class.</para>
</summary>
<param name="enable">
<attribution license="cc4" from="Microsoft" modified="false" />true to remain connected after the <see cref="M:System.Net.Sockets.Socket.Close" /> method is called; otherwise, false. </param>
<param name="seconds">
<attribution license="cc4" from="Microsoft" modified="false" />The number of seconds to remain connected after the <see cref="M:System.Net.Sockets.Socket.Close" /> method is called. </param>
</Docs>
<Excluded>0</Excluded>
</Member>
<Member MemberName="Enabled">
<MemberSignature Language="ILASM" Value=".property bool Enabled { public hidebysig specialname instance bool get_Enabled() public hidebysig specialname instance void set_Enabled(bool value) }" />
<MemberSignature Language="C#" Value="public bool Enabled { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance bool Enabled" />
<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 />
<Docs>
<value>
<para>
<see langword="true " />to enable lingering
after the <see cref="M:System.Net.Sockets.Socket.Close" qualify="true" />
method is called; otherwise
<see langword="false" />.</para>
</value>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>You can use the <see cref="P:System.Net.Sockets.LingerOption.Enabled" /> property to determine whether the <see cref="T:System.Net.Sockets.Socket" /> will linger after closing. Change this value to true or false and pass the altered <see cref="T:System.Net.Sockets.LingerOption" /> to the <see cref="M:System.Net.Sockets.Socket.SetSocketOption(System.Net.Sockets.SocketOptionLevel,System.Net.Sockets.SocketOptionName,System.Int32)" /> method or set the <see cref="P:System.Net.Sockets.TcpClient.LingerState" /> or <see cref="P:System.Net.Sockets.Socket.LingerState" /> property.to disable or enable lingering.</para>
<para>The following table describes the behavior 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.Socket.LingerState" /> property.</para>
<list type="table">
<listheader>
<item>
<term>
<para>
<paramref name="enable" />
</para>
</term>
<description>
<para>
<paramref name="seconds" />
</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 for a connection-oriented socket (TCP, for example) 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. For connection-oriented socket (TCP, for example), 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.Socket.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.Socket.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 a value that indicates whether to linger after the <see cref="T:System.Net.Sockets.Socket" /> is closed.</para>
</summary>
</Docs>
<Excluded>0</Excluded>
</Member>
<Member MemberName="LingerTime">
<MemberSignature Language="ILASM" Value=".property int32 LingerTime { public hidebysig specialname instance int32 get_LingerTime() public hidebysig specialname instance void set_LingerTime(int32 value) }" />
<MemberSignature Language="C#" Value="public int LingerTime { get; set; }" />
<MemberSignature Language="ILAsm" Value=".property instance int32 LingerTime" />
<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 />
<Docs>
<value>
<para>A <see cref="T:System.Int32" qualify="true" /> that contains the amount of time, in seconds, to remain connected after
calling the <see cref="M:System.Net.Sockets.Socket.Close" qualify="true" />
method.</para>
</value>
<remarks>
<attribution license="cc4" from="Microsoft" modified="false" />
<para>Use this value if you want to determine how long a closed <see cref="T:System.Net.Sockets.Socket" /> will attempt to transfer unsent data before timing out. You can also set this value to the desired time-out period, in seconds. </para>
<para>If the <see cref="P:System.Net.Sockets.LingerOption.Enabled" /> property is true, and you set <see cref="P:System.Net.Sockets.LingerOption.LingerTime" /> to 0, the <see cref="T:System.Net.Sockets.Socket" /> discards any pending data to send in the outgoing network buffer. If you change this value, you must pass the altered <see cref="T:System.Net.Sockets.LingerOption" /> instance to the <see cref="M:System.Net.Sockets.Socket.SetSocketOption(System.Net.Sockets.SocketOptionLevel,System.Net.Sockets.SocketOptionName,System.Int32)" /> method or set the <see cref="P:System.Net.Sockets.TcpClient.LingerState" /> or <see cref="P:System.Net.Sockets.Socket.LingerState" /> property.</para>
<para>The following table describes the behavior 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.Socket.LingerState" /> property.</para>
<list type="table">
<listheader>
<item>
<term>
<para>
<paramref name="enable" />
</para>
</term>
<description>
<para>
<paramref name="seconds" />
</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 for a connection-oriented socket (TCP, for example) 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. For connection-oriented socket (TCP, for example), 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.Socket.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.Socket.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 the amount of time to remain connected after calling the <see cref="M:System.Net.Sockets.Socket.Close" /> method if data remains to be sent.</para>
</summary>
</Docs>
<Excluded>0</Excluded>
</Member>
</Members>
<TypeExcluded>0</TypeExcluded>
</Type>