2012-02-18 12 views
5

używam polecenia socat stworzyć interfejs tty na moim wbudowanego urządzenia linux jak:Ponownie socat połączenia po awarii sieci

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

Połączenie jest długodystansowych connecstion nad dsl-line. Ta linia jest odłączana co noc i mój interfejs tty jest wyłączony. Czy jest możliwe utworzenie interakcji tty z mechanizmem ponownego połączenia, dopóki serwer po raz kolejny nie będzie online?

Następne pytanie: czy można wywołać polecenie socat z programu java?

Wielkie dzięki! Karl-Heinz

Odpowiedz

1

Od wersji 1.4.0.0 Socat oferuje opcje "ponów", "na zawsze" i "odstęp".

Tak, to powinno dać pożądanego zachowania:

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

Działa to tylko na pierwszym podłączeniu. Jeśli połączenie zostanie zamknięte, nie nawiąże połączenia. – lethalman

+0

@lethalman Czy możesz wyjaśnić swoją konfigurację? Czy używasz 'socat' na obu końcach? Czy ustawiłeś opcję "na zawsze" na obu końcach? – FloHimself

+1

'socat - tcp: foo, forever' spróbuje ponownie połączyć się na zawsze, jeśli pierwsze połączenie nie powiedzie się. Ale po ustanowieniu połączenia, społeczność po prostu przestanie działać, jeśli punkt końcowy zostanie rozłączony. – lethalman

1

socat jest zaprojektowany, aby wyjść kiedy zamyka jedno połączenie.

Obejście: umieścić nieskończoną pętlę wokół socat rozpocząć

while true 
    do 
     socat addr1 addr2 
     sleep 1 
    done 
Powiązane problemy