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