2012-02-18 18 views
5

estoy usando un comando socat para crear una interfaz TTY en mi dispositivo Linux embebido como:socat conexión después de fallo de la red

socat pty,link=/dev/ttyS9 TCP:10.0.10.1:9999 

la conexión es una connecstion de larga distancia a través de una línea DSL. Esta línea está desconectada todas las noches y mi interfaz tty está desactivada. ¿Es posible crear el tty interace con un mecanismo para volver a conectar hasta que el servidor esté en línea nuevamente?

Siguiente pregunta: ¿es posible llamar al comando socat desde un programa java?

¡Muchas gracias! Karl-Heinz

Respuesta

1

A partir de la versión V 1.4.0.0 socat presenta las opciones "reintentar", "para siempre" e "intervalo".

lo tanto, esto debe darle el comportamiento deseado:

socat pty,link=/dev/ttyS9 tcp:10.0.10.1:9999,forever,interval=10,fork 
+0

Esto sólo funciona en la primera conexión. Si la conexión está cerrada, no se volverá a conectar. – lethalman

+0

@lethalman ¿Te importa explicar tu configuración? ¿Usas 'socat' en ambos extremos? ¿Estableciste la opción 'forever' en ambos extremos? – FloHimself

+1

'socat - tcp: foo, forever' intentará reconectarse para siempre si la primera conexión no tiene éxito. Pero una vez establecida la conexión, socat se cerrará si el punto final se desconecta. – lethalman

1

Socat está diseñado para salir cuando se cierra la conexión.

Solución: poner un bucle infinito alrededor de su socat empezar

while true 
    do 
     socat addr1 addr2 
     sleep 1 
    done 
Cuestiones relacionadas