¿Hay alguna manera de acceder a las opciones de socket SOL_TCP (AKA IPPROTO_TCP) (por ejemplo, TCP_KEEPIDLE) en Java?

Quiero poder establecer los parámetros KEEPALIVE del socket TCP (TCP_KEEPIDLE, TCP_KEEPINTVL y TCP_KEEPCNT) pero parece que no están disponibles en la clase Socket . Basado en la documentación de las clases SocketImpl y SocketOptions junto con los detalles sobre la implementación en la parte inferior de esta página , llegué a la conclusión de que los implementadores de la biblioteca codificaron el argumento de "nivel" de setsockopt a SOL_SOCKET, lo que lo hace imposible acceder a opciones en otros niveles como SOL_TCP / IPPROTO_TCP . ¿Hay otra clase de Java que me falta que maneja estas opciones? Si no es así, ¿hay alguna forma de obtener el número de descriptor de archivo sin formato para que pueda pasarlo a través de JNI a un código C que llame directamente a setsockopt, ya que no parece estar disponible desde FileDescriptor?

Respuesta 1

Estas son todas las opciones específicas de Linux no portátiles, probablemente por eso no están disponibles en una biblioteca de idiomas multiplataforma. La mayoría de ellos tienen sus respectivas entradas proc(5)y sysctl(2)opciones.

Respuesta: 2

Necesito desarrollar una API Rest de cliente en Java, que use una biblioteca con http asíncrono. Más concretamente, puedo realizar operaciones de Rest CRUD, que devuelven un Futuro de la Respuesta http. Mi pregunta es, ...

¿Cómo instanciar un componente Camel desde un fragmento XML sin Spring? Digamos que tengo un fragmento, algo como esto: <dataFormats> <json id = "jack" library = "Jackson" prettyPrint = "true" / & ...

Necesito una manera de guardar una ArrayList de objetos. He examinado problemas similares en el sitio y (parece ;-) haber implementado lo que encontré, pero tengo dos problemas: si defino la clase como Serializable ...

Tengo un JPanel padre que está utilizando el administrador de diseño OverlayLayout y el JPanel contiene un panel principal y sobre el panel de diseño. por ejemplo, setLayout (nuevo OverlayLayout (this)); add (overlayPanel) add (...