【发布时间】:2011-02-21 14:31:50
【问题描述】:
我正在编写一个实现 RFC 2544 网络测试的程序。作为测试的一部分,我必须以指定的速率发送 UDP 数据包。
例如,我应该以 1Gb/s 的速度发送 64 字节的数据包。这意味着我应该每 0.5 微秒发送一次 UDP 数据包。伪代码可以看起来像“Sending UDP packets at a specified rate”:
while (true) {
some_sleep (0.5);
Send_UDP();
}
但恐怕在 Windows 和 Linux 中都没有 some_sleep() 函数,它可以给我 0.5 微秒的分辨率。
是否可以在 C++ 中完成此任务,如果可以,正确的方法是什么?
【问题讨论】:
-
是否需要每 0.5 us 发送 1 个数据包,还是可以尽可能快地发送 pxbmcackets,然后等到一秒钟过去?
-
是的,我需要每 0.5 us 发送 1 个数据包,可以按照 RFC 2544 测试的推荐(但不是必需)部分单独完成数据包的非均匀流。
标签: c++ networking udp