python socket立即发送

Fla*_*der 1 python sockets

套接字的问题是它们缓冲数据并在缓冲区填充或给定间隔时发送它.有什么办法可以避免它并通过高优先级的套接字发送一些东西,没有任何延迟?在我的情况下,毫秒计数.

Pyn*_*hia 5

TCP_NODELAY是您要查找的选项

示例代码:

s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
Run Code Online (Sandbox Code Playgroud)

有关详细信息,请参阅

这个SO QA

本文

这个其他的SO QA

注意:在Linux系统上,选项TCP_CORK也可用.

在您的应用程序中试用这两个选项,看看会发生什么.请阅读这篇详尽且内容丰富的文章,了解两者的优缺点.

  • 只需第二次调用 `s.setsockopt()` (一年后回答,但无论如何) (4认同)