是否可以使用在接收数据包时环回到本地主机的 shell 脚本?

是否可以使用在接收数据包时环回到本地主机的 shell 脚本?

我想运行一个 shell 脚本,当它从任何地方收到数据包时,就将数据包发送到本地主机(环回)。

我在用netcat

nc -lp $port,然后就echo test | nc localhost $port可以工作了。

但是,在 shell 脚本中,当接收到包时可以执行代码,但是却不行。

nc -lp $port | ./a.sh然后执行以下脚本:

#!/bin/bash
while read socket
do
    echo test | nc localhost $port
done

它给出了错误:

localhost [127.0.0.1] 2012 (?) : Connection refused

对此原因可能有一个简单的解释。

我想知道:我是否可以做我想做的事?

我为什么要这样做:编写一个简单的网络应用程序,它可以在节点之间或同一节点上的帐户之间进行通信,并且我想对两者使用相同的代码(因此同一节点上的帐户之间的交互是通过环回消息而不是直接进行。)

答案1

好的。我现在已经解决了这个问题。导致该错误的原因是多方面的。

首先,netcat不允许多个连接(参见https://stackoverflow.com/a/29780420/19923651以供参考。 )

我通过使用来解决这个问题socat

然后还有一些其他问题,让我误解了我的调试尝试。

相关内容