最近用CSocket做了一个网络通讯程序,循环发送数据到接收端,在每两个发送语句之间写Sleep(10)时,接收正常,将Sleep(10)改为Sleep(1),或去掉Sleep时,发送的20条数据,只接收到6条数据,并且接收到的数据是发送端发送数据没有规律的几条接在一起的,高手,请指导一下,本人非常感谢!

解决方案 »

  1.   

    Sleep(10);休眠10毫秒,保证Send,Recv同步.
    Sleep(1)或去掉Sleep(),保证不了Send,Recv同步.
      

  2.   

    在数据之间加上数据的边界,在服务器端进行分解。==================================
     CSDN助手 全面支持CSDN论坛
     监视、收藏、历史、签名走马灯
      

  3.   

    固定数据长度.如struct DATA { int n; char data[256]; };
      

  4.   

    楼主出现的问题属于粘包问题,你去vckbase上有想关文章。
    基本就是把你的数据结构话,这样就可以拆分粘在一起的包。因为你知道每个包的大小。
      

  5.   

    试试,调用setsockopt加上TCP_NODELAY选项。禁止Nagle算法,立即发送。