gpt4 book ai didi

c - 如何控制UDP套接字的吞吐量?

转载 作者:行者123 更新时间:2023-11-30 17:23:53 26 4
gpt4 key购买 nike

我想要实现的是通过socket以稳定的速度输出数据,比如600KB/s。因为TCP有自己的流量控制,所以我选择UDP。

问题来了:如何实现这一目标?我可以每分钟只发送一个 600KB 大小的数据包吗?那么如何控制两个数据包之间的时间间隔呢?我可以用select()设置一个时间间隔吗:

select(fd, NULL, NULL, NULL, &tv); //tv is set as 1 second

我对此表示怀疑,因为套接字的 sendto()运行在应用层,我们无法确保数据包是操作系统内核发送的。

如何解决这个问题?或者有更好的办法吗?

PS:C语言

最佳答案

最简单的方法是在发送之间等待足够长的时间以降低总吞吐量。这将使“平均”发送速率保持在所需值。

但是,更好的实现是接收方在收到输入后发送 ACK。因此,以可用的最佳速率起搏。当然,接下来还需要超时、重发等。

关于c - 如何控制UDP套接字的吞吐量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27373508/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com