【发布时间】:2015-12-10 14:40:40
【问题描述】:
我正在使用 python 脚本使用标准 print() 参数生成数据。然后应该将脚本的输出发送到 localhost tcp 套接字 9999。
python script.py | nc -lk 9999
在客户端,我正在监听 localhost tcp socket 9999 以验证一切正常。
nc localhost 9999
是的,它正在工作。但看起来 nc 在发送它们之前正在缓冲一些消息。结果,我在客户端遇到了巨大的延迟,这对我的应用程序来说是不可接受的:我需要尽快获得数据。
有没有办法禁用缓冲区?
我注意到,如果我发送更多消息,延迟会减少。但是,这对我来说并不是真正的解决方案。
【问题讨论】:
-
您是否进行了 Google 搜索? “linux netcat no buffer”给了我这个作为第一个结果:superuser.com/a/429134/206562
-
是的,我看到了这篇文章。但是,在使用我的脚本时它对我不起作用。
-
值得注意的是
nc从不缓冲,它总是立即发送数据。缓冲的是 Python 程序,因为 stdout 不是终端。