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 |
---|---|
|
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. |
|
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