在POSIX C中,我们可以使用writev
一次将多个数组写入文件描述符。当您必须连接多个缓冲区以形成通过套接字发送的单个消息时(例如,考虑HTTP标头和正文),这非常有用。这样我就不需要两次调用send
,一次用于标题,一次用于正文(什么阻止消息在线上的不同帧中分割),也不需要在发送之前连接缓冲区
我的问题是,是否有Python等价物?
答案 0 :(得分:3)
即将到来的Python 3.3,现在正在进行alpha测试。请参阅socket.sendmsg
。
答案 1 :(得分:2)
Python支持os.writev()
以及sendmsg()
。这些函数是原子函数,因此相当于使用连接缓冲区分别调用write()
和send()
。
有TCP_CORK
。你可能会说内核在没有塞住之前不发送部分帧。
使用这两种技术,您可以控制部分TCP帧。