【问题标题】:receiving messages through udp with delay python通过 udp 接收消息,延迟 python
【发布时间】:2020-12-04 08:06:19
【问题描述】:

我试图了解如何接收 udp 消息。我有一个外部工具,每 1 秒通过 udp 发送数据,还有一个简单的 python 脚本接收它们。

sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
sock.bind(ip,port)
while True:
    data, addr = sock.recvfrom(num)
    

我可以接收数据,但是如果我将代码更改为

while True:
    data, addr = sock.recvfrom(num)
    time.sleep(10)

我仍然收到与以前相同的消息,只是速度变慢了。我期待在“time.sleep(10)”期间发送的消息会丢失(我知道如果不是所有消息,这将是大多数消息)。是否有一个内部存储来存储所有发送的消息,无论接收者是否正在接收它们?

【问题讨论】:

    标签: python udp


    【解决方案1】:

    一个 Socket 有一个缓冲区,它与 python 无关,但与操作系统有关。

    所以是的,udp 数据包只是坐在那里等待应用程序将它们从缓冲区读取到应用程序内存。

    当然,这个缓冲区是有限的,所以如果你等太久,缓冲区就会满了,你就会开始丢包。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-06-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-17
      • 1970-01-01
      • 2023-04-03
      相关资源
      最近更新 更多