Socket.Close 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
關閉 Socket 連接並釋放所有相關資源。
多載
Close() |
關閉 Socket 連接並釋放所有相關資源。 |
Close(Int32) |
關閉 Socket 連線,並釋放所有具指定逾時的關聯資源,以允許傳送佇列的資料。 |
Close()
- 來源:
- Socket.cs
- 來源:
- Socket.cs
- 來源:
- 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所有 Managed 和 Unmanaged 資源。 關閉時, Connected 屬性會設定為 false
。
針對面向連線的通訊協議,建議您先呼叫 Shutdown ,再呼叫 Close 方法。 這可確保所有數據在關閉之前,都會在連接的套接字上傳送和接收。
如果您需要在不先呼叫 的情況下呼叫 CloseShutdown,您可以藉由將 選項設定 DontLingerSocket 為 false
,並指定非零的超時時間間隔,以確保傳送佇列進行傳出傳輸的數據。
Close 接著會封鎖,直到傳送此數據,或直到指定的逾時到期為止。 如果您將 設定 DontLinger 為 false
並指定零超時時間間隔, Close 請釋放連線,並自動捨棄傳出佇列數據。
注意
若要將 DontLinger 套接字選項設定為 false
,請建立 LingerOption、將 enabled 屬性設定為 true
,並將 屬性設定 LingerTime 為所需的逾時期間。 使用此選項 LingerOption 搭配 DontLinger 套接字選項來呼叫 SetSocketOption 方法。
注意
在應用程式中啟用網路追蹤時,這個成員會輸出追蹤資訊。 如需詳細資訊,請參閱 .NET Framework 中的網路追蹤。
另請參閱
適用於
Close(Int32)
- 來源:
- Socket.cs
- 來源:
- Socket.cs
- 來源:
- 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所有 Managed 和 Unmanaged 資源。 關閉時, Connected 屬性會設定為 false
。
針對面向連線的通訊協議,建議您先呼叫 Shutdown ,再呼叫 Close。 這可確保所有數據在關閉之前,都會在連接的套接字上傳送和接收。
如果您需要在不先呼叫 的情況下呼叫 CloseShutdown,您可以藉由將 選項設定 DontLinger 為 false
,並指定非零的超時時間間隔,以確保傳送佇列進行傳出傳輸的數據。
Close 接著會封鎖,直到傳送此數據,或直到指定的逾時到期為止。 如果您將 設定 DontLinger 為 false
並指定零超時時間間隔, Close 請釋放連線,並自動捨棄傳出佇列數據。
注意
若要將 DontLinger 套接字選項設定為 false
,請建立 LingerOption、將 enabled 屬性設定為 true
,並將 屬性設定 LingerTime 為所需的逾時期間。 使用此選項 LingerOption 搭配 DontLinger 套接字選項來呼叫 SetSocketOption 方法。
注意
在應用程式中啟用網路追蹤時,這個成員會輸出追蹤資訊。 如需詳細資訊,請參閱 .NET Framework 中的網路追蹤。