Socket.Close 方法
定义
重要
一些信息与预发行产品相关,相应产品在发行之前可能会进行重大修改。 对于此处提供的信息,Microsoft 不作任何明示或暗示的担保。
关闭 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中的网络跟踪。