2012-02-18 17 views
5

Sto usando un comando socat per creare un'interfaccia tty sul mio dispositivo Linux embedded come:Reconnect socat connessione dopo guasto della rete

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

la connessione è una lunga distanza di più di un connecstion dsl-line. Questa linea viene disconnessa ogni notte e la mia interfaccia tty non funziona. È possibile creare l'interaccia tty con un meccanismo per riconnettersi fino a quando il lato server è di nuovo online?

Domanda successiva: è possibile chiamare il comando socat da un programma java?

Grazie mille! Karl-Heinz

risposta

1

A partire dalla versione V 1.4.0.0 socat dispone delle opzioni "riprova", "per sempre" e "intervallo".

Quindi, questo dovrebbe dare il comportamento desiderato:

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

Questo funziona solo al primo collegamento. Se la connessione è chiusa, non si riconnetterà. – lethalman

+0

@lethalman Ti spiace spiegare la tua configurazione? Usi 'socat' su entrambe le estremità? Hai impostato l'opzione 'per sempre 'su entrambe le estremità? – FloHimself

+1

'socat -tcp: foo, per sempre' proverà a riconnettersi per sempre se la prima connessione non riesce. Ma dopo aver stabilito la connessione, socat si interromperà solo se l'endpoint si disconnette. – lethalman

1

Socat è stato progettato per uscire, quando una connessione si chiude.

Soluzione: mettere un loop infinito intorno al vostro socat iniziare

while true 
    do 
     socat addr1 addr2 
     sleep 1 
    done 
Problemi correlati