我有一种情况,我正在通过预定义端口(假设20001)的UDP馈送数据。
我的目标是使相同的数据可以被多个客户端访问,这些客户端将通过TCP连接到我,同样是在预定义的端口上(假设是30001)。
这似乎是一件非常简单的事情,但它不是我的专业范围。所以我做了一些阅读,并使用netcat:
相当接近nc -l -p 30001 --keep-open --sh-exec "nc -u -l 20001"
不幸的是,这会导致每个后续TCP连接都产生一个新的——sh-exec命令实例,并且只有第一个真正"听到"传入的UDP数据-所以它的效果是第一个连接的TCP客户端"获胜",而任何后续连接都没有收到任何东西,同时堆积了一堆无用的进程。
我还认为将数据放入其中可能行得通:
nc -l -p 30001 --keep-open | nc -u -l 20001
可惜,它没有。
我觉得我可能用了错误的工具来解决这个问题,但我不确定什么工具更适合这项工作。
欢迎你的想法!
如果不是双向流量,您可以使用以下命令:nc -l -u -p 20001 | ncat -k -l -p 30001
从这篇文章中学习:如何使用nc监听多个tcp连接它不可能将多个tcp流连接到nc
,所以他们建议使用ncat
。