Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
有没有一种方法可以访问Java中的SOL_TCP(又名IPPROTO_TCP)套接字选项(例如TCP_KEEPIDLE)?_Java_Sockets_Tcp - Fatal编程技术网

有没有一种方法可以访问Java中的SOL_TCP(又名IPPROTO_TCP)套接字选项(例如TCP_KEEPIDLE)?

有没有一种方法可以访问Java中的SOL_TCP(又名IPPROTO_TCP)套接字选项(例如TCP_KEEPIDLE)?,java,sockets,tcp,Java,Sockets,Tcp,我希望能够设置TCP套接字KEEPALIVE参数(TCP_KEEPIDLE、TCP_KEEPINTVL和TCP_keepnt),但这些参数在类中似乎不可用。根据和类的文档以及底部关于实现细节的部分,我得出结论,库实现人员将的“level”参数硬编码为SOL_SOCKET,这使得无法访问其他级别的选项,例如SOL_TCP/。是否还有另一个我缺少的Java类来处理这些选项?如果没有,是否有办法获取原始文件描述符编号,以便我可以通过JNI将其传递给一段直接调用setsockopt的C代码,因为它似乎无

我希望能够设置TCP套接字KEEPALIVE参数(TCP_KEEPIDLE、TCP_KEEPINTVL和TCP_keepnt),但这些参数在类中似乎不可用。根据和类的文档以及底部关于实现细节的部分,我得出结论,库实现人员将的“level”参数硬编码为SOL_SOCKET,这使得无法访问其他级别的选项,例如SOL_TCP/。是否还有另一个我缺少的Java类来处理这些选项?如果没有,是否有办法获取原始文件描述符编号,以便我可以通过JNI将其传递给一段直接调用setsockopt的C代码,因为它似乎无法从中获得?

这些都是不可移植的Linux特定选项,这可能就是为什么它们在跨平台语言库中不可用的原因。不过,它们中的大多数都有各自的条目和选项。

您要查找的手册页是tcp(7)。
请注意,使用IPPROTO_TCP比使用SOL_TCP更安全,我希望他们留下了一些东西,允许程序员去掉安全功能,只将适当的协议和操作号作为整数传递给原始实现,但我想没有这种运气。感谢您指出这些是特定于Linux的;我原以为POSIX对此的支持更全面;我已经更新了问题和正文中的一些信息,但我认为这不会改变最终结果,因为SocketOptions中没有KEEPALIVE值。我想我可以尝试在从SocketOptions构造时设置原始int值。在我开始编写代码之前,对这种方法有什么看法?