Mar*_*tti 12 networking ubuntu socat
我有这个运行良好的 socat 命令,但是当没有数据传输时,它在 5 分钟后就死了,我不明白为什么,因为我将它设置为在前 10 秒后每 10 秒发送 100 个 keepalive . 从我对 socat 手册页的理解来看,这应该让它存活 1000 秒,即 16 分钟。另外,如果我尝试将 keepcnt 设置为 200,我会得到“setsockopt(7, 6, 6, {200}, 4): Invalid argument”但在互联网上我找不到该参数的最大值,所以我认为我一定在这里遗漏了一些非常明显的东西。对参数进行更多试验从未改变 5mn 的超时值。可以接受为 keepcnt 设置较低的值和为 keepintvl 设置较高的值,但只是没有明显的效果。
socat -d -d -d -v pty,link=/tmp/lp1 tcp:192.168.0.5:9100,reuseaddr,keepalive,keepidle=10,keepintvl=10,keepcnt=100
Run Code Online (Sandbox Code Playgroud)
2017/05/31 08:53:01 socat[16065] I 本产品包含由 OpenSSL Project 开发的用于 OpenSSL Toolkit 的软件。(http://www.openssl.org/) 2017/05/31 08:53:01 socat[16065] I 本产品包含由 Tim Hudson (tjh@cryptsoft.com) 编写的软件 2017/05/31 08:53:01 socat [16065] 我将选项“符号链接”设置为“/tmp/lp1” 2017/05/31 08:53:01 socat[16065] 我 openpty({5}, {6}, {"/dev/pts/1"},,) -> 0 2017/05/31 08:53:01 socat[16065] N PTY 是 /dev/pts/1 2017/05/31 08:53:01 socat[16065] 我将选项“so-keepalive”设置为 1 2017/05/31 08:53:01 socat [16065] 我将选项“tcp-keepidle”设置为 10 2017/05/31 08:53:01 socat[16065] 我将选项“tcp-keepintvl”设置为 10 2017/05/31 08:53:01 socat [16065] 我将选项“tcp-keepcnt”设置为 100 2017/05/31 08:53:01 socat[16065] N 打开连接到 AF=2 192.168.0.5:9100 2017/05/31 08:53:01 socat[16065] 我开始连接循环 2017/05/31 08:53:01 socat[16065] I socket(2, 1, 6) -> 7 2017/05/31 08:53:01 socat[16065] N 从本地地址 AF=2 成功连接 192.168.0.4:56482 2017/05/31 08:53:01 socat[16065] 我解析并打开了所有sock地址 2017/05/31 08:53:01 socat[16065] N 使用 FD [5,5] 和 [7,7] 开始数据传输循环 2017/05/31 08:58:01 socat[16065] N 插槽 2 (fd 7) 处于 EOF 2017/05/31 08:58:02 socat[16065] 我轮询超时(0.500000 秒内没有数据) 2017/05/31 08:58:02 socat[16065] 我关闭(5) 2017/05/31 08:58:02 socat[16065] 我关机(7, 2) 2017/05/31 08:58:02 socat[16065] N 以状态 0 退出
归档时间: |
|
查看次数: |
12135 次 |
最近记录: |