我试图使用netcat每隔几毫秒读取一个文件中的一行,并将其发送到一个端口..

到目前为止,我从netcat文档中了解到它可以在发送的每一行之间插入一个时间间隔:

这是来自netcat帮助手册:

-i secs Delay interval for lines sent, ports scanned

我尝试了以下操作,允许我在发送的每一行之间插入至少1秒的时间间隔.


nc -q 10 -i 1 -lk 9999 < file_input

我想知道是否还有将此时间间隔缩短为毫秒.也许通过使用一些实用程序将文件的输入传递给netcat,允许在毫秒级的每个读取之间配置间隔?

解决方法:

使用GNU coreutils的睡眠可以让你睡几分之一秒.所以你可以尝试:

while read -r line ; do echo "$line"; sleep 0.001; done < "/path/to/file" | nc host port

在每个循环中,变量“line”保存文件的一行,该行通过netcat发送到端口“port”上的主机“host”.发送一行后,代码等待0.001秒,asf.直到文件中没有更多数据要发送.

有关sleep命令等待几分之一秒的能力的更多信息,请参阅“How do I sleep for a millisecond in bash or ksh”.

标签: shell, linux, pipe, netcat

相关文章推荐

添加新评论,含*的栏目为必填