Вам необходимо включить эти значения в сокете.Например, в C:
#include <stdio.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netinet/tcp.h>
void set_tcp_keepalive (int fd)
{
int val;
val = 1;
if (setsockopt (fd, SOL_SOCKET, SO_KEEPALIVE, &val, sizeof (val)) == -1) {
perror ("setsockopt(SO_KEEPALIVE)");
}
val = 60;
if (setsockopt (fd, IPPROTO_TCP, TCP_KEEPIDLE, &val, sizeof (val)) == -1) {
perror ("setsockopt(TCP_KEEPIDLE)");
}
val = 30;
if (setsockopt (fd, IPPROTO_TCP, TCP_KEEPINTVL, &val, sizeof (val)) == -1) {
perror ("setsockopt(TCP_KEEPINTVL)");
}
val = 2;
if (setsockopt (fd, IPPROTO_TCP, TCP_KEEPCNT, &val, sizeof (val)) == -1) {
perror ("setsockopt(TCP_KEEPCNT)");
}
}