我有一个在Windows xp 32系统上运行的C ++应用程序发送和接收短tcp / ip数据包。
测量(准确地)到达时间我看到到达时间的量化为16毫秒时间单位。 (意味着所有到达的数据包都是(16)xN毫秒彼此分开)
为避免数据包聚合,我尝试通过在套接字变量中将IPPROTO_TCP选项设置为TCP_NODELAY来禁用NAGLE算法,但它没有帮助
我怀疑这个问题与Windows调度程序有关,它也有16毫秒的时钟。 有没有解决这个问题的方法? 感谢
答案 0 :(得分:0)
使用更高分辨率的计时器,例如QueryPerformanceTimer()或__rdtsc(),了解他们的downfalls。
同样请注意,如果您正在使用等待功能,您可能需要以1ms的分辨率调用timeBeginPeriod(),或者甚至实现一个包含更高分辨率计时器的忙碌延迟功能。