6

我有一个正在处理的项目,其中一个硬件正在生成不断写入文本文件的输出。我需要做的是流式传输该文件,因为它正在通过简单的 tcp/ip 连接写入。

我目前正在尝试通过简单的 netcat 来实现,但 netcat 只发送在执行时写入的文件部分。它不会继续发送其余部分。

现在我有一台服务器在端口 9000 上监听 netcat(仅用于测试目的):

netcat -l 9000

发送命令是:

netcat localhost 9000 < c:\OUTPUTFILE

因此,在我的理解中,netcat 实际上应该在流式传输文件,但是一旦发送了执行开始时存在的所有内容,它就会停止。它不会终止连接,而只是停止发送新数据。

如何让它连续流式传输数据?

4

3 回答 3

8

尝试:

netcat localhost 9000 < tail -f /path/to/file
于 2010-06-03T16:09:27.633 回答
1

尝试:

tail /var/log/mail.log -f | nc -C xxx.xxx.xxx.xxx 9000
于 2018-10-17T05:06:35.887 回答
-1

试试nc

# tail for get last text from file, then find the lines that has TEXT and then stream
# see documentation for nc, -l means create server, -k means not close when client disconnect, waits for anothers clients
tail -f  /output.log | grep "TEXT" | nc -l -k 2000
于 2020-09-23T20:07:02.767 回答