как обрабатывать события KEEPALIVE?

У меня есть клиент-серверное приложение, и я установил опцию keep alivce socket на стороне сервера. Я понимаю концепцию поддержки активности, но как мне обрабатывать событие поддержки активности, определяет ли механизм поддержки активности проблему на другом конце, и я хочу закрыть тот сокет, который подключен к этому клиенту.
Я посмотрел на функцию WSAIoctl, но не понял, может ли она решить мою проблему.

Я получил этот пример онлайн:

tcp_keepalive   KeepAlive;
DWORD   dJunk;

//  Use socket level keep alive for about 5 minutes
//  Unless this is done Microsoft will not close the socket
//  in the event of a cable / VPN disconnection for 2 hours.
KeepAlive.onoff = 1;
KeepAlive.keepalivetime = 60000;
KeepAlive.keepaliveinterval = 60000;

WSAIoctl( soc, SIO_KEEPALIVE_VALS, &KeepAlive, sizeof( KeepAlive ), NULL, 0,
&dJunk, NULL, NULL );

Я знаю, что это очень теоретический вопрос, но у меня действительно нет связанных частей кода.
Итак, еще раз, мой вопрос заключается в том, как я должен обрабатывать сбой соединения, как другой конец отключен.

-1

Решение

Вы не Нет такой вещи как «keepalive событие». TCP делает все это за вас. Если таймер поддержки активности истекает, соединение будет сброшено.

3

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]