Есть две части, которые нужно поддерживать.Во-первых, его можно включить с помощью значений по умолчанию.Во-вторых, оставьте в живых интервал и время ожидания может быть установлено.
Для первой части вы можете использовать это:
unsigned long val = 1;
int res = setsockopt(socket, SOL_SOCKET, SO_KEEPALIVE, (char*)&val, sizeof val);
Параметры поддержки активности нельзя установить в posix.Однако в Windows это можно сделать следующим образом:
tcp_keepalive alive;
alive.onoff = TRUE;
alive.keepalivetime = 60000;
alive.keepaliveinterval = 1000;
int bytes_ret=0;
res = WSAIoctl(socket, SIO_KEEPALIVE_VALS, &alive, sizeof(alive), NULL, 0,
&bytes_ret, NULL, NULL);
Как в Windows, так и в Linux вы можете определить время ожидания активности и интервал для всей системы.