比如我有一个Client端不断的向Server端发数据.
Server用异步的CSocket来接收. 每产生一次OnReceive通知处理,中间都会间隔100MS左右,而在这100MS中Client因为在不停的发,可能已经发了很多数据. 有办法缩短这100MS左右的间隔时间吗? 
难道真的只有用同步吗?
谢谢!

解决方案 »

  1.   

    可是这样问题并没有解决呀. 因为对收到数据处理的过程远小于我OnReceive的时间间隔啊.
    比如虽然我Client端在不断的发,但我Server却每隔100ms才收一收,但对数据的处理可能只需要10ms,那多出来的90ms就会造成我处理数据线程的停滞啊.有办法缩短OnReceive的时间间隔吗?
      

  2.   

    但我Server却每隔100ms才收一收,但对数据的处理可能只需要10ms
    ///////////////////////////////////////有数据到达了就会响应OnReceive,你控制100ms不必要如果数据很快的话,使用异步和多线程效果更好
      

  3.   

    楼上的,我的意思是100MS是我目前统计出的OnReceive的间隔时间,本来就是用的异步的哇.不是我手动设置100MS的.
    我的情况就是数据发送的很快.但异步的OnReceive还是差不多每隔100MS才收到Receive通知.但我处理数据线程处理数据的速度远小于这100MS的时差.
      

  4.   

    可能跟你网络质量有关的。100ms 才收到一个包,一个包2k,那么你的网速只有20K,很慢了。
      

  5.   

    晕,楼上的弟兄们,我的就是用对接测试的,没用无线网络呢.所谓的100MS的间隔是我在OnReceive中统计的两次OnReceive的间隔. 这期间Client一直在发送数据的啊. 
    我想知道这100MS是否是OS查看OnReceive的最快速度了?  
      

  6.   

    一般来说,事件通知消息模型(CSokcet,CAsyncSocket),一秒可以收到100—1000个包的。你这个肯定太慢了。
      

  7.   

    嗯,我又测试过了,好像是像楼上说的,正常状况下的消息模型的OnReceive收一次才10多MS.
    难道是我Client端发得太快了? Client端如何分包? 它一直在Send呀. 我这隔100MS收到的是它多个包的合成的数据啊.是不是因为这个原因导致我接收慢的呢?
      

  8.   

    查查程序,应该是代码的问题了.实际上,收一次包不用10ms的(主要是网络带宽的问题),但消息模型,消息处理能力一般1000个消息左右,一秒内,多了,可能要IOCP了