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

Working with socat to send a message and receive a response

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

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

Uses unidirectional mode. The first address is only used for reading, and the second address is only used for writing

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