LINGER-Struktur (winsock.h)
Die linger-Struktur verwaltet Informationen zu einem bestimmten Socket, die angibt, wie sich dieser Socket verhalten soll, wenn Daten gesendet werden sollen und die Closesocket-Funktion im 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 Wert, der festgelegt wird, wenn die setockopt-Funktion aufgerufen wird, wobei der optname-Parameter auf SO_DONTLINGER festgelegt ist und der optval-Parameter 0 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 nonzero 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 Nonzero-Wert festgelegt hat. |
l_linger
Typ: u_short
Die Verweilzeit in Sekunden. Dieses Element 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. Dieses Element ist nur anwendbar, wenn das l_onoff Member der linger-Struktur auf einen Wert ohne Zero 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 der 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 l_onoff - als auch l_linger-Member geändert werden.
Das l_linger Member der linger-Struktur bestimmt, wie lange ein Socket in Sekunden geöffnet bleiben soll. Dieses Element ist nur anwendbar, wenn das l_onoff Member der linger-Struktur nichtzero ist.
Damit ein Socket geöffnet bleibt, sollte eine Anwendung den l_onoff-Member auf einen Nichtzero-Wert festlegen und den l_linger-Member auf das gewünschte Timeout in Sekunden festlegen. Um zu deaktivieren, dass ein Socket geöffnet bleibt, muss eine Anwendung nur den l_onoff Member der linger-Struktur auf 0 festlegen.
Wenn eine Anwendung die setockopt-Funktion aufruft , wobei der optname-Parameter auf SO_DONTLINGER festgelegt ist, um das l_onoff-Member auf einen nonzero-Wert festzulegen, wird der Wert für das l_linger-Member nicht angegeben. In diesem Fall ist das verwendete Timeout implementierungsabhängig. Wenn ein früheres Timeout für einen Socket festgelegt wurde (durch Aktivieren SO_LINGER), sollte dieser Timeoutwert vom Dienstanbieter wiederhergestellt werden.
Beachten Sie, dass das Aktivieren eines nichtzero-Timeouts für einen nicht blockierenden Socket nicht empfohlen wird.
Die getockopt-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 | winsock.h (einschließlich Winsock2.h) |