shell – nc(netcat)在UDP模式下挂起,等待更多数据.

前端之家收集整理的这篇文章主要介绍了shell – nc(netcat)在UDP模式下挂起,等待更多数据.前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试通过读取块内部的nc向statsd发送一个小字符串:
while read line; do
    printf "folder.counter:value|1c" | nc -q 0 -u $host $port
done

不幸的是,当处于UDP模式时,nc似乎想要无限期地等待,即使我已经指定了-q 0,该手册页所说的将使程序在EOF之后立即退出.

我试过传递-w 1,但是如果我发送的数据每秒输入的行数超过一行,那么数据就会缓慢增加,我会失去实时统计数据(更不用说冒着某种缓冲区溢出的风险) ).

是否有可能做我正在尝试用netcat做的事情,或者我是否需要用具有statsd库的语言编写一些东西?

我最终通过切换到socat修复了这个问题:
while read line; do
    printf "folder.counter:value|1c" | socat -t 0 - UDP:$host:$port
done

猜你在找的Bash相关文章