File 通过tcp/ip传输不断增长的文件

File 通过tcp/ip传输不断增长的文件,file,stream,continuous,netcat,File,Stream,Continuous,Netcat,我有一个项目正在进行中,一块硬件正在产生输出,并不断写入文本文件。 我需要做的是在通过简单的tcp/ip连接写入文件时对其进行流式传输 我目前正试图通过简单的netcat来实现这一点,但是netcat只发送在执行时写入的部分文件。它不会继续发送其余的 现在,我有一台服务器在端口9000上侦听netcat(仅用于测试目的): 发送命令是: netcat localhost 9000 < c:\OUTPUTFILE netcat localhost 9000

我有一个项目正在进行中,一块硬件正在产生输出,并不断写入文本文件。 我需要做的是在通过简单的tcp/ip连接写入文件时对其进行流式传输

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

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

发送命令是:

netcat localhost 9000 < c:\OUTPUTFILE
netcat localhost 9000 因此,据我所知,netcat实际上应该对文件进行流式处理,但一旦发送了执行开始时存在的所有内容,它就会停止。它不会终止连接,只是停止发送新数据

如何使其连续传输数据?

尝试:

netcat localhost 9000 < tail -f /path/to/file
netcat localhost 9000试试:

尝试:


命名管道?是的,就是这样。我在Win2003资源工具包中找到了尾巴。工作起来很有魅力。我将命令改为tail-fc:\out | netcat localhost 9000谢谢!曾经有一位智者说过,使用-F而不是-F,因为它将添加额外的选项,以便在服务重新启动或生成新日志时重试!除非按照@Grinner评论中的描述进行修改(如果没有修改,则不应标记为已接受),否则这可能无法工作
Yall可以根据需要进行编辑和调整。为了获得额外分数,最好包括一些代码解释以及这解决OP问题的原因。
-f
应该位于文件名之前,以便使用严格符合条目9的
tail
版本,它指定所有选项都应位于操作数之前。
netcat localhost 9000 < tail -f /path/to/file
tail /var/log/mail.log -f | nc -C xxx.xxx.xxx.xxx 9000
# 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