Socket.Close 方法

定义

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

重载

Close()

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

Close(Int32)

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

Close()

关闭 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

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

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

备注

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

备注

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

另请参阅

适用于

Close(Int32)

关闭 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

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

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

备注

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

备注

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

另请参阅

适用于