使用 socat 发送消息并接收响应

ark*_*ark 4 socat

在我的服务器上使用 Socat 我有当前命令:

socat -u tcp-l:7767,fork system:/app/getmsg.sh

所有 getmsgh.sh 所做的是:

read MESSAGE
echo $MESSAGE
Run Code Online (Sandbox Code Playgroud)

我试图找出一种让客户端发送消息并接收 getmsg.sh 输出的方法

在客户端尝试:

echo "hello" | socat -t 30 tcp:localhost:7767 -
Run Code Online (Sandbox Code Playgroud)

似乎不起作用。它显示在服务器上,但不在客户端上。看来如果你尝试向客户端传递消息 socat 想立即退出

mml*_*mlr 5

问题是-u服务器端的选项。手册页中-u选项的含义socat

使用单向模式。第一个地址仅用于读取,第二个地址仅用于写入

因此,tcp-l:只读取system:一侧,只写入一侧,而不是双向连接(这是默认设置)。删除该-u选项会使问题中的示例起作用。