Freigeben über


LINGER-Struktur (winsock2.h)

Die linger-Struktur verwaltet Informationen zu einem bestimmten Socket, die angeben, wie sich dieser Socket verhalten soll, wenn Daten gesendet werden sollen und die Closesocket-Funktion für den Socket aufgerufen wird.

Syntax

typedef struct linger {
  u_short l_onoff;
  u_short l_linger;
} LINGER, *PLINGER, *LPLINGER;

Member

l_onoff

Typ: u_short

Gibt an, ob ein Socket nach einem Aufruf der Closesocket-Funktion für eine bestimmte Zeit geöffnet bleiben soll, um das Senden von Daten in die Warteschlange zu ermöglichen. Dieser Member kann über einen der folgenden Werte verfügen.

Wert Bedeutung
0
Der Socket bleibt nicht geöffnet. Dies ist der festgelegte Wert, wenn die setockopt-Funktion aufgerufen wird, wobei der optname-Parameter auf SO_DONTLINGER und der optval-Parameter null ist.

Dieser Wert wird auch festgelegt, wenn die setockopt-Funktion aufgerufen wird, wobei der optname-Parameter auf SO_LINGER festgelegt ist und die im optval-Parameter übergebene linger-Struktur den l_onoff Member auf 0 festgelegt hat.

Nonzero
Der Socket bleibt für eine bestimmte Zeit geöffnet. Dieser Wert wird festgelegt, wenn die setockopt-Funktion aufgerufen wird, wobei der optname-Parameter auf SO_DONTLINGER festgelegt ist und der optval-Parameter ungleich null ist.

Dieser Wert wird auch festgelegt, wenn die setockopt-Funktion aufgerufen wird, wobei der optname-Parameter auf SO_LINGER festgelegt ist und die im optval-Parameter übergebene linger-Struktur den l_onoff Member auf einen Wert ungleich null festgelegt hat.

l_linger

Typ: u_short

Die Verweilzeit in Sekunden. Dieser Member gibt an, wie lange nach einem Aufruf der Closesocket-Funktion geöffnet bleiben soll, um das Senden von Daten in der Warteschlange zu ermöglichen. Dieser Member ist nur anwendbar, wenn das l_onoff Member der linger-Struktur auf einen Wert ungleich 0 (null) festgelegt ist.

Dieser Wert wird festgelegt, wenn die setockopt-Funktion aufgerufen wird, wobei der optname-Parameter auf SO_LINGER festgelegt ist. Der optval-Parameter , der an die setockopt-Funktion übergeben wird, muss eine linger-Struktur enthalten, die in die interne linger-Struktur kopiert wird, die für den Socket verwaltet wird.

Hinweise

Der l_onoff Member der linger-Struktur bestimmt, ob ein Socket nach einem Aufruf der Closesocket-Funktion für eine bestimmte Zeit geöffnet bleiben soll, um das Senden von Daten in die Warteschlange zu ermöglichen. Etwas verwirrend ist, dass dieses Element auf zwei Arten geändert werden kann:

  • Rufen Sie die setockopt-Funktion auf, wobei der optname-Parameter auf SO_DONTLINGER festgelegt ist. Der optval-Parameter bestimmt, wie der l_onoff-Member geändert wird.
  • Rufen Sie die setockopt-Funktion auf, wobei der optname-Parameter auf SO_LINGER festgelegt ist. Der optval-Parameter gibt an, wie sowohl die member l_onoff als auch l_linger geändert werden.

Der l_linger Member der linger-Struktur bestimmt, wie lange ein Socket in Sekunden geöffnet bleiben soll. Dieser Member ist nur anwendbar, wenn das l_onoff Member der linger-Struktur ungleich null ist.

Damit ein Socket geöffnet bleibt, sollte eine Anwendung den l_onoff Member auf einen Wert ungleich null festlegen und den l_linger Member auf das gewünschte Timeout in Sekunden festlegen. Damit ein Socket nicht geöffnet bleibt, muss eine Anwendung nur den l_onoff Member der linger-Struktur auf 0 (null) festlegen.

Wenn eine Anwendung die setockopt-Funktion aufruft , wobei der optname-Parameter auf SO_DONTLINGER festgelegt ist, um den l_onoff-Member auf einen Wert ungleich Null festzulegen, wird der Wert für den l_linger-Member nicht angegeben. In diesem Fall ist das verwendete Timeout von der Implementierung abhängig. Wenn ein vorheriges Timeout für einen Socket festgelegt wurde (durch Aktivieren von SO_LINGER), sollte dieser Timeoutwert vom Dienstanbieter wiederhergestellt werden.

Beachten Sie, dass das Aktivieren eines Timeouts ungleich Null für einen nicht blockierenden Socket nicht empfohlen wird.

Die getsockopt-Funktion kann aufgerufen werden, wobei der optname-Parameter auf SO_LINGER festgelegt ist, um den aktuellen Wert der einem Socket zugeordneten linger-Struktur abzurufen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows 2000 Professional [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows 2000 Server [nur Desktop-Apps]
Kopfzeile winsock2.h (Winsock2.h einschließen)

Weitere Informationen

Ordnungsgemäßes Herunterfahren, Verweilen und Schließen des Sockets

closesocket

getsockopt

setsockopt