UDP sendto()变得非常低,python

UDP sendto()变得非常低,python,python,udp,sendto,Python,Udp,Sendto,一旦我运行了一个.py来发送10000个UDPlengh is:110,使用socket sendto,服务器会很快接收到大约400个msg,之后每一个msg都会慢上10秒 如果我再次运行.py,会很奇怪,很快又收到400个MSG 对于这种情况,是否存在缓冲区限制或UDP问题 是的,我明白了!UDP无法确定目的地,在300毫秒后继续出现包阻塞。因此,我必须添加时间。sleep0.2使其工作。现在我正在尝试时间间隔的多服务器进程。可能是其他东西正在使用您的网卡同时发送,系统一次只能从您的应用程序发

一旦我运行了一个.py来发送10000个UDPlengh is:110,使用socket sendto,服务器会很快接收到大约400个msg,之后每一个msg都会慢上10秒

如果我再次运行.py,会很奇怪,很快又收到400个MSG

对于这种情况,是否存在缓冲区限制或UDP问题


是的,我明白了!UDP无法确定目的地,在300毫秒后继续出现包阻塞。因此,我必须添加时间。sleep0.2使其工作。现在我正在尝试时间间隔的多服务器进程。

可能是其他东西正在使用您的网卡同时发送,系统一次只能从您的应用程序发送400ish,而其他东西需要使用NIC。这听起来更像是网络使用问题,而不是UDP或其他方面的问题。

如果在紧密循环中发送消息,则可能是缓冲问题。也可能是防火墙在降低速度,因为短时间连续发送10000个数据包通常是病毒或DDOS特洛伊木马或类似病毒的迹象。我还没有答案,但我发现了类似的问题。深入研究使我发现,对于我们在while循环中调用的python中的每个sendto,每当strace显示正在创建netlink套接字并在其上调用recvmsg时,它都会执行路由查找。整个过程使一切都变慢了。这似乎只发生在IPV6上,而不是IPV4上。我会更新,因为我发现更多。C程序不会遇到这样的问题。