LingerOption.LingerTime Eigenschap

Definitie

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.

Van toepassing op