4

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

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

4

2 回答 2

3

在即将到来的Python 3.3中有,现在正在进行 alpha 测试。见socket.sendmsg

于 2012-06-08T17:13:11.603 回答
2
  1. Python 支持os.writev()以及sendmsg(). 这些函数是原子的,因此相当于调用write()send()分别连接缓冲区。

  2. TCP_CORK。您可能会说内核在未塞住之前不要发送部分帧。

使用任何一种技术,您都可以控制部分 TCP 帧。

于 2016-05-20T20:29:55.840 回答