如何在java或netty中设置套接字选项(TCP_KEEPCNT,TCP_KEEPIDLE,TCP_KEEPINTVL)?

Yan*_*ven 5 java sockets linux tcp netty

在C/Linux中,可以轻松地为每个KEEPALIVE tcp连接单独设置有关这些套接字选项的不同值.

TCP_KEEPCNT(自Linux 2.4起)TCP在丢弃连接之前应发送的最大keepalive探测数.此选项不应用于可移植的代码中.

TCP_KEEPIDLE(自Linux 2.4起)如果在此套接字上设置了套接字选项SO_KEEPALIVE,则在TCP开始发送keepalive探测之前,连接需要保持空闲的时间(以秒为单位).此选项不应用于可移植的代码中.

TCP_KEEPINTVL(自Linux 2.4起)各个keepalive探测之间的时间(以秒为单位).此选项不应用于可移植的代码中.

在netty或java中,如何为socket设置三个socket选项?我知道没有可移植的方法来解决它,但只有在Linux中,我可以设置这些套接字选项吗?

abl*_*igh 4

给出的链接实际上并没有告诉您如何使用 JNA 来实现它。在花了一段时间挖掘 SO 来寻找解决方案后,我编写了自己的库。你可以在这里找到它。