进一步阅读

进一步阅读

对 ucspi-tcp 包中使用 tcpclient 感到困惑。

我正在使用 ubuntu ,并像这样安装 ucspi-tcp :

apt install ucspi-tcp

然后我启动了一个 tcpserver :

tcpserver localhost 10000 tee -a /tmp/test 

tcpserver启动后,我尝试使用tcpclient发送消息:

tcpclient localhost 10000 echo "hello, JOJO" >&7

根据 tcpclient 的联机帮助页,我想也许我应该将输出重定向到 fd 7。

tcpclient 尝试连接到 TCP 服务器。如果成功,它将运行 prog,描述符 6 从网络读取,描述符 7 写入网络。

但是,我得到了这个:

bash: 7: Bad file descriptor

如何修改tcpclient发送消息的命令?谢谢您的回复^^

顺便提一句

如果我nc

clay@CVN76:~$ nc localhost 10000
hello, JOJO
hello, JOJO

文件内容测试会如预期的那样。

答案1

tcpclient设置文件描述符当它运行时。尝试在调用的 shell 中进行重定向tcpclient tcpclient就算跑了,当然不行。在执行此类 shell 重定向时,没有打开文件描述符 #7。

查看包中的finger@date@http@和脚本。who@注意他们如何将tcpclient链加载到 a(nother) sh,这然后执行 shell 重定向。

进一步阅读

相关内容