2

我有一个 C++ 应用程序在 windows xp 32 系统上运行,发送和接收短 tcp/ip 数据包。

测量(准确)到达时间我看到到达时间量化为 16 毫秒时间单位。(意味着所有到达的数据包都以 (16 )xN 毫秒为间隔)

为了避免数据包聚合,我尝试通过在套接字变量中将 IPPROTO_TCP 选项设置为 TCP_NODELAY 来禁用 NAGLE 算法,但它没有帮助

我怀疑这个问题与 windows schedular 有关,它也有一个 16 毫秒的时钟.. 知道解决这个问题的方法吗?谢谢

4

1 回答 1

0

使用更高分辨率的计时器,例如QueryPerformanceTimer()__rdtsc()意识到它们的失败

同样请注意,如果您正在使用等待函数,您可能希望调用timeBeginPeriod()以获得 1ms 的分辨率,或者甚至实现一个围绕更高分辨率计时器的忙路延迟函数。

于 2010-11-30T08:00:33.940 回答