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