python 2.7套接字.send()一般条款

2024-10-02 14:16:37 发布

您现在位置:Python中文网/ 问答频道 /正文

有人能给我解释一下Python的总承包合同吗套接字.send()方法? 我正在制作某种流量发生器作为教育项目的一部分。在

我什么时候都做简单的日志记录套接字.send()方法执行时,我发送一些流量,并记录该方法完成时的时间(其中包括日志)。这些日志显示,我发送的消息比wireshark显示的要多,这发生在我的传出流量相对较高时。在

我读过: https://docs.python.org/2/howto/sockets.html#socket-howto

正如我提供的链接中提到的:“它们不一定处理你交给它们的所有字节(或期望它们的字节),因为它们的主要关注点是处理网络缓冲区。一般来说,当相关联的网络缓冲区被填满(send)'时,它们返回。在

如果我理解正确,就不能保证我的信息会被及时发送。我能读多少字节套接字.send()已处理,但我想知道“已处理”是什么意思。在

谁能给我解释一下:

  • 我提供的链接中的网络缓冲区是什么(TCP窗口,网卡上的某种队列,其他的?)在
  • 外行的话,怎么样套接字.send()用python实现,以便更好地利用它。它如何与我的硬件/操作系统交互?在

Tags: 项目方法https网络send消息字节链接
1条回答
网友
1楼 · 发布于 2024-10-02 14:16:37

当您使用TCP时,网络层保证传递给send()的所有字节都将被实际发送(否则,套接字将被关闭)。但是,听起来像是在计算数据包而不是字节。在

您调用send()的次数与发送的数据包的数量并不总是有关系的。网络层可以自由地将传递给send()的数据合并或拆分为不同大小的数据包,只要这些数据都能以相同的顺序发送到远程端。在

如果您想对发送的数据包的数量进行更多控制,请使用UDP而不是TCP。在

相关问题 更多 >

    热门问题