Linux -通过UDP接收数据;接受TCP连接,将数据传递给客户端



我有一种情况,我正在通过预定义端口(假设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

最新更新