Freigeben über


LingerOption.LingerTime-Eigenschaft

Ruft die Zeitspanne ab, für die die Verbindung nach Aufruf der Socket.Close-Methode aufrechterhalten werden soll, wenn noch Daten zu senden sind, oder legt diese fest.

Namespace: System.Net.Sockets
Assembly: System (in system.dll)

Syntax

'Declaration
Public Property LingerTime As Integer
'Usage
Dim instance As LingerOption
Dim value As Integer

value = instance.LingerTime

instance.LingerTime = value
public int LingerTime { get; set; }
public:
property int LingerTime {
    int get ();
    void set (int value);
}
/** @property */
public int get_LingerTime ()

/** @property */
public void set_LingerTime (int value)
public function get LingerTime () : int

public function set LingerTime (value : int)

Eigenschaftenwert

Die Zeitspanne in Sekunden, für die die Verbindung nach dem Aufruf von Socket.Close beibehalten werden soll.

Hinweise

Mit diesem Wert können Sie bestimmen, wie lange ein schon geschlossener Socket versuchen soll, noch nicht gesendete Daten zu übertragen, bis das Timeout erreicht ist. Sie können mit diesem Wert auch die gewünschte Timeoutspanne in Sekunden festlegen. Wenn die Enabled-Eigenschaft auf true festgelegt wurde und Sie die LingerTime auf 0 festlegen, versucht der Socket so lange, Daten zu senden, bis im ausgehenden Netzwerkpuffer keine Daten mehr vorhanden sind. Wenn Sie diesen Wert ändern, müssen Sie die geänderte LingerOption an die SetSocketOption-Methode oder die LingerState-Methode übergeben.

Beispiel

Im folgenden Beispiel wird der Wert dieser Eigenschaft angezeigt.

    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 'SetSocketOptions
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::Write(  "This application will timeout if Send does not return within " );
Console::WriteLine( Encoding::ASCII->GetString( s->GetSocketOption( SocketOptionLevel::Socket, SocketOptionName::SendTimeout, 4 ) ) );

// Blocks until send returns.
int i = s->Send( msg );

// Blocks until read returns.
array<Byte>^ bytes = gcnew array<Byte>(1024);

s->Receive( bytes );

//Displays to the screen.
Console::WriteLine( Encoding::ASCII->GetString( bytes ) );
s->Shutdown( SocketShutdown::Both );
Console::Write(  "If data remains to be sent, this application will stay open for " );
Console::WriteLine( safe_cast<LingerOption^>(s->GetSocketOption( SocketOptionLevel::Socket, SocketOptionName::Linger ))->LingerTime.ToString() );
s->Close();
    Console.WriteLine("This application will timeout if Send does not "
        + "return within " + Encoding.get_ASCII().GetString(s.
        GetSocketOption(SocketOptionLevel.Socket, 
        SocketOptionName.SendTimeout, 4)));
    // blocks until send returns
    int i = s.Send(msg);
    // blocks until read returns
    ubyte bytes[] = new ubyte[1024];

    s.Receive(bytes);
    //Display to the screen
    Console.WriteLine(Encoding.get_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))).get_LingerTime());
    s.Close();
} //SetSocketOptions

Plattformen

Windows 98, Windows 2000 SP4, Windows CE, Windows Millennium Edition, Windows Mobile für Pocket PC, Windows Mobile für Smartphone, Windows Server 2003, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP SP2, Windows XP Starter Edition

.NET Framework unterstützt nicht alle Versionen sämtlicher Plattformen. Eine Liste der unterstützten Versionen finden Sie unter Systemanforderungen.

Versionsinformationen

.NET Framework

Unterstützt in: 2.0, 1.1, 1.0

.NET Compact Framework

Unterstützt in: 2.0, 1.0

Siehe auch

Referenz

LingerOption-Klasse
LingerOption-Member
System.Net.Sockets-Namespace