Dan*_*lli 2 linux netcat socat
我有一个带有简单交互式命令行界面的嵌入式Linux应用程序.
我想从telnet(或网络,一般)访问命令行.
但是,应该在电路板打开时以及在一个唯一的实例中启动该过程.因此,以下netcat命令不是一个选项:
nc -l -p 4000 -e myapp
Run Code Online (Sandbox Code Playgroud)
我可以
nc -l -p 4000 | myapp
Run Code Online (Sandbox Code Playgroud)
向myapp发送远程命令,但这样我看不到myapp输出.
有没有什么办法来重定向既 stdin和stdout来netcat?
谢谢.
我发现通过使用bash v.> = 4.0我可以使用coproc:
#!/bin/bash
coproc myapp
nc -kl -p 4000 <&"${COPROC[0]}" >&"${COPROC[1]}"
Run Code Online (Sandbox Code Playgroud)
有没有办法将stdin和stdout重定向到netcat
有socat,这是一个更先进的netcat.您可以重定向两者stdin并stdout使用它.例如:
socat TCP4-LISTEN:5556,reuseaddr,fork EXEC:"cat - /etc/redhat-release"
Run Code Online (Sandbox Code Playgroud)
另外,在上述cat读出stdin和/etc/redhat-release并把它们输出到stdout.
然后尝试使用:
$ echo "hello" | nc 127.0.0.1 5556
hello
Fedora release 22 (Twenty Two)
$ echo "hello 2" | nc 127.0.0.1 5556
hello 2
Fedora release 22 (Twenty Two)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10916 次 |
| 最近记录: |