Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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