C / Linux имеет следующее ...
TCP_KEEPCNT (начиная с Linux 2.4) Максимальное количество keepalive зондов, которые TCP должен отправить перед тем как уронить nection. Эта опция не должна использоваться в коде, предназначенном для быть портативным. TCP_KEEPIDLE (since Linux 2.4) The time (in seconds) the connection needs to remain idle до того, как TCP начнет отправлять проверки активности, если опция сокета SO_KEEPALIVE был установлен на этом разъем. Эта опция не должна использоваться в коде, предназначенном для быть портативным. TCP_KEEPINTVL (since Linux 2.4) The time (in seconds) between individual keepalive probes. Эта опция должна не должен использоваться в коде, предназначенном для переносимости.
TCP_KEEPCNT (начиная с Linux 2.4) Максимальное количество keepalive зондов, которые TCP должен отправить перед тем как уронить nection. Эта опция не должна использоваться в коде, предназначенном для быть портативным.
TCP_KEEPIDLE (since Linux 2.4) The time (in seconds) the connection needs to remain idle
до того, как TCP начнет отправлять проверки активности, если опция сокета SO_KEEPALIVE был установлен на этом разъем. Эта опция не должна использоваться в коде, предназначенном для быть портативным.
TCP_KEEPINTVL (since Linux 2.4) The time (in seconds) between individual keepalive probes.
Эта опция должна не должен использоваться в коде, предназначенном для переносимости.
Я знаю, что есть проблемы с переносимостью, но есть ли способ изменить их в Java на Socket?
не похоже на то, что вы легко можете изменить с Java, JNA / JNI-оболочка вокруг C api, вероятно, ваша самая безопасная ставка.