LingerOption.LingerTime Eigenschap
Definitie
Belangrijk
Bepaalde informatie heeft betrekking op een voorlopige productversie die aanzienlijk kan worden gewijzigd voordat deze wordt uitgebracht. Microsoft biedt geen enkele expliciete of impliciete garanties met betrekking tot de informatie die hier wordt verstrekt.
Hiermee wordt de hoeveelheid tijd opgehaald of ingesteld die moet worden verbonden na het aanroepen van de Close() methode als er gegevens moeten worden verzonden.
public:
property int LingerTime { int get(); void set(int value); };
public int LingerTime { get; set; }
member this.LingerTime : int with get, set
Public Property LingerTime As Integer
Waarde van eigenschap
De hoeveelheid tijd, in seconden, om verbonden te blijven na het aanroepen Close().
Voorbeelden
In het volgende voorbeeld wordt de waarde van deze eigenschap weergegeven.
Console.WriteLine("This application will timeout if Send does not return within " + Encoding.ASCII.GetString(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4)));
// blocks until send returns
int i = s.Send(msg);
// blocks until read returns
byte[] bytes = new byte[1024];
s.Receive(bytes);
// Display to the screen
Console.WriteLine(Encoding.ASCII.GetString(bytes));
s.Shutdown(SocketShutdown.Both);
Console.WriteLine("If data remains to be sent, this application will stay open for " + ((LingerOption)s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger)).LingerTime.ToString());
s.Close();
Console.WriteLine(("This application will timeout if Send does not return within " + Encoding.ASCII.GetString(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.SendTimeout, 4))))
' blocks until send returns
Dim i As Integer = s.Send(msg)
' blocks until read returns
Dim bytes(1024) As Byte
s.Receive(bytes)
'Display to the screen
Console.WriteLine(Encoding.ASCII.GetString(bytes))
s.Shutdown(SocketShutdown.Both)
Console.WriteLine(("If data remains to be sent, this application will stay open for " + CType(s.GetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Linger), LingerOption).LingerTime.ToString()))
s.Close()
End Sub
Opmerkingen
Gebruik deze waarde als u wilt bepalen hoe lang een gesloten Socket poging wordt uitgevoerd om niet-verzonden gegevens over te dragen voordat er een time-out optreedt. U kunt deze waarde ook instellen op de gewenste time-outperiode, in seconden.
Als de Enabled eigenschap is trueen u instelt op LingerTime 0, Socket worden alle in behandeling zijnde gegevens verwijderd die in de uitgaande netwerkbuffer moeten worden verzonden. Als u deze waarde wijzigt, moet u het gewijzigde LingerOption exemplaar doorgeven aan de SetSocketOption methode of de LingerState of LingerState eigenschap instellen.
In de volgende tabel wordt het gedrag beschreven voor de mogelijke waarden van de Enabled eigenschap en de LingerTime eigenschap die is opgeslagen in de LingerState eigenschap.
enable |
seconds |
Behavior |
|---|---|---|
false (uitgeschakeld), de standaardwaarde |
De time-out is niet van toepassing (standaard). | Pogingen om in behandeling zijnde gegevens te verzenden voor een verbindingsgeoriënteerde socket (bijvoorbeeld TCP) totdat de time-out van het standaard-IP-protocol verloopt. |
true (ingeschakeld) |
Een time-out voor niet-nul | Probeert in behandeling zijnde gegevens te verzenden totdat de opgegeven time-out verloopt en als de poging mislukt, wordt de verbinding opnieuw ingesteld door Winsock. |
true (ingeschakeld) |
Een time-out van nul. | Verwijdert alle in behandeling zijnde gegevens. Voor verbindingsgeoriënteerde socket (BIJVOORBEELD TCP) stelt Winsock de verbinding opnieuw in. |
De IP-stack berekent de standaard time-outperiode van het IP-protocol die moet worden gebruikt op basis van de retourtijd van de verbinding. In de meeste gevallen is de time-out die door de stack wordt berekend, relevanter dan één die is gedefinieerd door een toepassing. Dit is het standaardgedrag voor een socket wanneer de LingerState eigenschap niet is ingesteld.
Wanneer de LingerTime eigenschap die is opgeslagen in de LingerState eigenschap groter is dan de standaardtime-out van het IP-protocol, wordt de time-out van het standaard-IP-protocol nog steeds toegepast en overschreven.