如何使用nc,echo,xargs等工具编写echo服务器bash脚本,这些工具能够同时处理来自多个客户端的请求,每个客户端都具有持久连接?
我到目前为止最好的是
nc -l -p 2000 -c 'xargs -n1 echo'
Run Code Online (Sandbox Code Playgroud)
但它只允许一个连接.
Dav*_*sta 43
如果您使用ncat而不是nc,您的命令行可以正常使用多个连接但(如您所指出的)没有-p.
ncat -l 2000 -k -c 'xargs -n1 echo'
Run Code Online (Sandbox Code Playgroud)
ncat可从http://nmap.org/ncat/获得.
PS与原始的Hobbit的netcat(nc)-c标志不受支持.
更新:现在需要-k( - keep-open)来处理多个连接.
dou*_*uyw 23
这里有些例子.ncat简单的服务
TCP echo服务器
ncat -l 2000 --keep-open --exec "/bin/cat"
Run Code Online (Sandbox Code Playgroud)
UDP echo服务器
ncat -l 2000 --keep-open --udp --exec "/bin/cat"
Run Code Online (Sandbox Code Playgroud)
Cae*_*sar 10
如果ncat不是一个选项,socat也会工作:
socat TCP4-LISTEN:2000,fork EXEC:cat
Run Code Online (Sandbox Code Playgroud)
这fork是必要的,因此可以接受多个连接.添加reuseaddr到TCP4-LISTEN可能很方便.