socket servidor recibir fuente enviar entre ejemplo conectar con computadoras codigo cliente java linux networking jdk1.6

servidor - Usando Java 6, en Linux, ¿cómo puedo asegurarme de usar un socket ipv4?



sockets en java enviar y recibir (2)

Agregue -Djava.net.preferIPv4Stack = verdadero a las propiedades de tiempo de ejecución de su aplicación Java.

Intento escribir una pequeña aplicación rápida de Java para leer el contenido de un archivo pcap (de Wireshark) y reproducir los datos en la red en un cuadro de Linux. El archivo solo contendrá paquetes de difusión UDP, por lo que mi aplicación solo necesita la marca de tiempo, el número de puerto y los datos del paquete para hacer lo que necesito. Mi problema es que la aplicación que intento probar con este código está escuchando transmisiones de IPv4 UDP en Windows. Mi aplicación de prueba sigue abriendo un socket IPv6 para enviar los datos.

Estoy usando netstat -a -u -p para determinar que el socket es un socket udp6. En Windows, sé que no es así.

¿Cuál es la forma más fácil o mejor para forzar la aplicación de prueba en Linux en Java para abrir una toma udp o udp4 en su lugar? No quiero forzarme a proporcionar la dirección de red ipv4 cada vez. Quiero poder mover este código a otra máquina sin tener que recordar que es una configuración que debe cambiarse.


También puedes usar este comando (como root) y no necesitarás agregar el parámetro -Djava.net.preferIPv4Stack = true en cada aplicación java:

# echo 0 > /proc/sys/net/ipv6/bindv6only

Si desea mantener esta configuración para siempre, puede escribirla en algunos guiones iniciales.