Scatter / gather套接字用Python编写

时间:2012-06-08 17:01:21

标签: python sockets

在POSIX C中,我们可以使用writev一次将多个数组写入文件描述符。当您必须连接多个缓冲区以形成通过套接字发送的单个消息时(例如,考虑HTTP标头和正文),这非常有用。这样我就不需要两次调用send,一次用于标题,一次用于正文(什么阻止消息在线上的不同帧中分割),也不需要在发送之前连接缓冲区

我的问题是,是否有Python等价物?

2 个答案:

答案 0 :(得分:3)

即将到来的Python 3.3,现在正在进行alpha测试。请参阅socket.sendmsg

答案 1 :(得分:2)

  1. Python支持os.writev()以及sendmsg()。这些函数是原子函数,因此相当于使用连接缓冲区分别调用write()send()

  2. TCP_CORK。你可能会说内核在没有塞住之前不发送部分帧。

  3. 使用这两种技术,您可以控制部分TCP帧。