Share via


LingerOption(Boolean, Int32) 建構函式

定義

初始化 LingerOption 類別的新執行個體。

public:
 LingerOption(bool enable, int seconds);
public LingerOption (bool enable, int seconds);
new System.Net.Sockets.LingerOption : bool * int -> System.Net.Sockets.LingerOption
Public Sub New (enable As Boolean, seconds As Integer)

參數

enable
Boolean

要在呼叫 Close() 方法之後保持連接,則為 true,否則為 false

seconds
Int32

秒數,呼叫 Close() 方法之後要保持連接的時間。

範例

下列範例會在呼叫 Close 方法之後,將先前建立Socket的 設定為 linger 一秒。

LingerOption^ myOpts = gcnew LingerOption( true,1 );
mySocket->SetSocketOption( SocketOptionLevel::Socket, SocketOptionName::Linger, myOpts );
LingerOption myOpts = new LingerOption(true,1);

mySocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger, myOpts);
Dim myOpts As New LingerOption(True, 1)
       
mySocket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger, _
   myOpts)

備註

在您關閉 Socket之後,傳出網路緩衝區中可能仍有可用的數據。 enable使用 參數來指定是否要在Socket呼叫 close 方法之後繼續傳輸未傳送的數據。 seconds使用 參數來指出您想要Socket在逾時之前嘗試傳輸未傳送數據的時間長度。如果您為 enable 參數指定 true 0seconds,則會Socket嘗試傳送數據,直到傳出網路緩衝區中沒有剩餘的數據為止。 如果您為 enable 參數指定 false ,則會Socket立即關閉 ,且任何未傳送的數據都會遺失。

下表描述 Socket.Close 在 或 TcpClient.LingerState 屬性中Socket.LingerState建立及設定 T:System.Net.Sockets.LingerOption 實例時,和 TcpClient.Closeseconds 方法enable的行為。

enable seconds 行為
false (停用) 預設值 逾時不適用, (預設) 。 嘗試傳送連線導向套接字 (TCP 的擱置數據,例如) 直到預設 IP 通訊協定逾時為止。
true 已啟用 () 非零逾時 嘗試傳送擱置的數據,直到指定的逾時到期為止,如果嘗試失敗,Winsock 會重設連線。
true 已啟用 () 零逾時。 捨棄任何擱置的數據。 針對連線導向套接字 (TCP,例如) ,Winsock 會重設連線。

IP 堆疊會根據連線的來回時間計算要使用的預設IP通訊協定逾時期間。 在大部分情況下,堆疊所計算的逾時比應用程式所定義的逾時還要相關。 當未設定 屬性時 LingerState ,這是套接字的默認行為。

LingerTime當屬性中LingerState儲存的屬性設定大於預設 IP 通訊協定逾時,預設 IP 通訊協定逾時仍會套用並覆寫。

適用於