Socket.Close 方法

定义

关闭 Socket 连接并释放所有关联的资源。

重载

Close()

关闭 Socket 连接并释放所有关联的资源。

Close(Int32)

关闭 Socket 连接并释放所有与指定超时关联的资源,以允许要发送的数据排队。

Close()

Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs

关闭 Socket 连接并释放所有关联的资源。

public:
 void Close();
public void Close ();
member this.Close : unit -> unit
Public Sub Close ()

示例

下面的代码示例关闭 Socket

try
{
   aSocket->Shutdown(SocketShutdown::Both);
   aSocket->Close();
}
catch (...)
{
   aSocket->Close();
   throw;
}

if ( aSocket->Connected )
{
   Console::WriteLine( "Winsock error: {0}", Convert::ToString(
      System::Runtime::InteropServices::Marshal::GetLastWin32Error() ) );
}
try
{
    aSocket.Shutdown(SocketShutdown.Both);
}
finally
{
    aSocket.Close();
}
    Try
        aSocket.Shutdown(SocketShutdown.Both)
    Finally
        aSocket.Close()
    End Try

End Sub

注解

方法 Close 关闭远程主机连接,并释放与 Socket关联的所有托管和非托管资源。 关闭后, Connected 属性设置为 false

对于面向连接的协议,建议在调用 Close 方法之前调用 Shutdown 。 这可确保在已连接的套接字上发送和接收所有数据,然后再将其关闭。

如果需要在不首先调用 的情况下调用 CloseShutdown,可以通过将 选项false设置为 DontLingerSocket 并指定非零超时间隔来确保发送排队等待传出传输的数据。 Close 然后会阻止,直到发送此数据或指定的超时过期为止。 如果设置为 DontLingerfalse 并指定零超时间隔, Close 则释放连接并自动放弃传出排队数据。

注意

若要将 DontLinger 套接字选项设置为 false,请创建一个 LingerOption,将 enabled 属性设置为 true,并将 属性 LingerTime 设置为所需的超时期限。 将此 LingerOption 与套接字选项一起使用 DontLinger ,以调用 SetSocketOption 方法。

备注

当你在应用程序中启用网络跟踪后,此成员将输出跟踪信息。 有关详细信息,请参阅 .NET Framework 中的网络跟踪

另请参阅

适用于

Close(Int32)

Source:
Socket.cs
Source:
Socket.cs
Source:
Socket.cs

关闭 Socket 连接并释放所有与指定超时关联的资源,以允许要发送的数据排队。

public:
 void Close(int timeout);
public void Close (int timeout);
member this.Close : int -> unit
Public Sub Close (timeout As Integer)

参数

timeout
Int32

等待长达 timeout 几毫秒以发送任何剩余数据,然后关闭套接字。

示例

下面的代码示例演示如何关闭 Socket

try
{
   aSocket->Shutdown(SocketShutdown::Both);
   aSocket->Close();
}
catch (...)
{
   aSocket->Close();
   throw;
}

if ( aSocket->Connected )
{
   Console::WriteLine( "Winsock error: {0}", Convert::ToString(
      System::Runtime::InteropServices::Marshal::GetLastWin32Error() ) );
}
try
{
    aSocket.Shutdown(SocketShutdown.Both);
}
finally
{
    aSocket.Close();
}
    Try
        aSocket.Shutdown(SocketShutdown.Both)
    Finally
        aSocket.Close()
    End Try

End Sub

注解

方法 Close 关闭远程主机连接,并释放与 Socket关联的所有托管和非托管资源。 关闭后, Connected 属性设置为 false

对于面向连接的协议,建议在调用 Close之前调用 Shutdown 。 这可确保在已连接的套接字上发送和接收所有数据,然后再将其关闭。

如果需要在不首先调用 的情况下调用 CloseShutdown,可以通过将 选项false设置为 DontLinger 并指定非零超时间隔来确保发送排队等待传出传输的数据。 Close 然后会阻止,直到发送此数据或指定的超时过期为止。 如果设置为 DontLingerfalse 并指定零超时间隔, Close 则释放连接并自动放弃传出排队数据。

注意

若要将 DontLinger 套接字选项设置为 false,请创建一个 LingerOption,将 enabled 属性设置为 true,并将 属性设置为 LingerTime 所需的超时期限。 将此 LingerOption 与套接字选项一起使用 DontLinger ,以调用 SetSocketOption 方法。

备注

当你在应用程序中启用网络跟踪后,此成员将输出跟踪信息。 有关详细信息,请参阅 .NET Framework 中的网络跟踪

另请参阅

适用于