我的目标是使用nc
和创建一个简单的echo服务器fifo
。我并不是在寻找最好的方法,我只是想了解以下命令的语义(何时发生派生,为什么,它发生了什么变化,为什么命令表现不同...)。
我使用bash,所以我不知道如果所有的命令都将使用POSIX工作sh
或zsh
,ksh
...
这是我在标题中提到的四个命令(假设我已经做过mkfifo fifo
):
cat fifo | nc -l localhost 8888 > fifo
exec 3<> fifo && nc -l localhost 8888 <&3 >&3 && exec 3>&-
nc -l localhost 8888 <(cat fifo) > fifo
nc -l localhost 8888 < fifo > fifo
现在,我希望这4个命令可以执行相同的操作,至少最后两个命令可以执行相同的操作。
- 第一个命令的行为符合预期,一个简单的回显服务器在客户端关闭连接时将关闭。
- 行为像1。
- 我可以连接到服务器,发送数据,但是我什么也收不到。当我关闭客户端连接时,服务器关闭。
- 无法连接到服务器,服务器将永远监听。