在我的服务器上使用Socat我有当前的命令:
socat -u tcp-l:7767,fork system:/app/getmsg.sh
所有getmsgh.sh都是:
read MESSAGE
echo $MESSAGE
我试图找出一种方法让客户端发送消息并接收getmsg.sh的输出
尝试客户端:
echo "hello" | socat -t 30 tcp:localhost:7767 -
似乎不起作用。它显示在服务器上,但不显示在客户端上。看来如果你试图传递一个消息,客户端socat想立即退出
答案 0 :(得分:3)
问题是服务器端的-u
选项。 -u
手册页中socat
选项的含义:
使用单向模式。第一个地址仅用于读取,第二个地址仅用于写入
因此,仅tcp-l:
侧被读取而system:
侧仅被写入,而不是双向直接连接(这是默认的)。删除-u
选项会使问题中的示例生效。