我有一个运行良好的 socat,当连接使用提供的参数进入时,它会执行我的命令。但是,我遇到的问题是套接字处于 EOF,下次连接进入时,该进程需要 3 秒钟才能重新启动。该进程将永远保持运行,因此 socat 认为存在 EOF,至少这是我的理解。
我的命令是:socat -v -s -d -d tcp-listen:2600,reuseaddr,fork exec:"/usr/bin/cec-client $CEC_CLIENT_ARGS"
相关日志行:
2014/12/31 22:41:04 socat[4746] N socket 1 (fd 4) is at EOF
2014/12/31 22:41:05 socat[4746] N exiting with status 0
ignoreeof
我在两端都试过了,都没有效果。我还尝试过设置-t
超时,-T
答案1
OPENSSL-LISTEN
如果您使用诸如、TCP-LISTEN
等LISTEN 命令,该fork
选项将会分离与子进程的连接,以便 socat 可以继续接收。
例子:
socat - OPENSSL-LISTEN:443,method=TLS1.2,verify=0,cert=cert.pem,key=key.pem,fork