100分难题:为何我的socket 在本机上 send 到 recieve 的时候有 4 到 20 ms 的延时?
分难题:为何我的socket 在send 到 recieve 的时候有 4 到 20 ms 的延时?
我的测试程序如下:
1、基于 winsocek 的 MFC dialog 程序,VC++ 6.0,在本机上测试运行
两个程序,一个作为 server,一个作为 client
2、Dialog 在 OnTimer 中有一个定时事件,每秒钟执行 50 次,每次占用CPU时间为 10ms
在定时事件中,用了一个while loop 独占时间(实际工作的时候也是独占时间)
3、在发送的时候获得 CPU 时间,在 recieve 的时候再获得CPU时间,两者相减为传送时间
计算并显示差值。
已经做过的几个测试如下:
1、如果将 ontimer 中的 delay 去掉,则 send -> recieve 仅需要 200 us
2、如果更改为 Sleep(10) 则时间不稳定,在400 us 到 2 ms 之间
3、用接收线程来做 send -> recieve 延时仍然一样
4、将 CSocket 更换为 CAsyncSocket 也一样
实在没有辙了,大家帮我想想办法吧