有没有一种方法可以访问java中的sol\u tcp(又名ipproto\u tcp)套接字选项(例如tcp\u keepidle)?

4jb9z9bj  于 2021-07-09  发布在  Java
关注(0)|答案(2)|浏览(290)

我希望能够设置tcp socket keepalive参数(tcp\u keepidle、tcp\u keepintvl和tcp\u keepcnt),但这些参数在socket类中似乎不可用。根据socketimpl和socketoptions类的文档以及本页底部关于实现细节的部分,我得出这样的结论:库实现者将setsockopt的“level”参数硬编码为sol\u socket,这使得无法访问其他级别的选项,如sol\u tcp/ipproto\u tcp。是否还有另一个java类处理这些选项?如果没有,有没有办法得到原始文件描述符的编号,这样我就可以通过jni将它传递给一段c代码,直接调用setsockopt,因为它似乎无法从filedescriptor获得?

nzkunb0c

nzkunb0c1#

您要查找的手册页是tcp(7)。请注意,使用ipproto\u tcp比使用sol\u tcp更安全

ccgok5k5

ccgok5k52#

这些都是不可移植的linux特定选项,这可能就是为什么它们在跨平台语言库中不可用的原因。不过,它们中的大多数都有各自的条目 proc(5) 以及 sysctl(2) 选项。

相关问题