套接字的问题在于它们缓冲数据并在缓冲区填满时或在给定时间间隔内发送数据。有什么办法可以避免它并通过高优先级的套接字发送一些东西,没有任何延迟?在我的例子中,毫秒很重要。
请您参考如下方法:
TCP_NODELAY 是您正在寻找的选项
示例代码:
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
更多信息见
注意:在 Linux 系统上选项 TCP_CORK 也可用。
在您的应用程序中试验这两个选项,看看会发生什么。 请阅读this exhaustive and very informative article关于两者的优缺点。
