【发布时间】:2012-08-24 15:24:37
【问题描述】:
我希望能够设置 TCP 套接字 KEEPALIVE 参数(TCP_KEEPIDLE、TCP_KEEPINTVL 和 TCP_KEEPCNT),但这些似乎在 Socket 类中不可用。根据SocketImpl 和SocketOptions 类的文档以及this page 底部的实现细节,我得出结论,库实现者硬编码了@987654325 的“级别”参数@ 到 SOL_SOCKET,这使得无法访问其他级别的选项,例如 SOL_TCP/IPPROTO_TCP。我是否缺少另一个处理这些选项的 Java 类?如果没有,有什么方法可以获取原始文件描述符编号,以便我可以通过 JNI 将其传递给一些直接调用 setsockopt 的 C 代码,因为它似乎无法从 FileDescriptor 获得?
【问题讨论】: