与socat合作发送消息并收到回复

时间:2017-12-30 21:43:31

标签: socat

在我的服务器上使用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想立即退出

1 个答案:

答案 0 :(得分:3)

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

  

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

因此,仅tcp-l:侧被读取而system:侧仅被写入,而不是双向直接连接(这是默认的)。删除-u选项会使问题中的示例生效。