【问题标题】:Reconnect socat connection after network failure网络故障后重新连接socat连接
【发布时间】:2012-02-18 12:45:59
【问题描述】:

我正在使用 socat 命令在我的嵌入式 linux 设备上创建一个 tty 接口,例如:

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

该连接是通过 dsl 线路进行的长距离连接。这条线每晚都断线,我的tty接口也宕机了。是否可以使用重新连接机制创建 tty 交互,直到服务器端再次在线?

下一个问题:可以从java程序中调用socat命令吗?

非常感谢! 卡尔-海因茨

【问题讨论】:

  • Stack Overflow 是一个编程和开发问题的网站。

标签: socat


【解决方案1】:

从版本 V 1.4.0.0 开始,socat 具有“重试”、“永远”和“间隔”选项。

所以,这应该会给你想要的行为:

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

【讨论】:

  • 这仅适用于第一次连接。如果连接关闭,它将不会重新连接。
  • @lethalman 你介意解释一下你的设置吗?你在两端都使用socat 吗?您是否在两端都设置了forever 选项?
  • 如果第一次连接不成功,socat - tcp:foo,forever 将永远尝试重新连接。但是在建立连接后,如果端点断开连接,socat 就会退出。
【解决方案2】:

Socat 设计为在一个连接关闭时退出。

解决方法:在你的 socat start 周围放置一个无限循环

  while true
    do 
      socat addr1 addr2
      sleep 1
    done

【讨论】:

  • 我还建议对不稳定地址使用keepalive 选项。如果没有此选项,socat 可能不会注意到连接何时丢失。
猜你喜欢
  • 2012-01-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-03-14
  • 1970-01-01
  • 2012-03-27
  • 2016-09-25
相关资源
最近更新 更多