1   classSocket.SendToServer(classSocket.s, "dsXZ", "Abcd");//向服备器发送命令
  2   MessageBox.Show("ok");//停一下,让数据传回来,没有这句,下面出错
  3   ds = classSocketSerialize.DeSerialize(classSocket.ReceiveDate(classSocket.s));   //接收数据      //  现在请教,怎样在执行第一句后,服务器的数据全部到达之后,才执行第3句。  

解决方案 »

  1.   

    按常理说,一般会用阻塞模式,classSocket.ReceiveDate在没收到数据之前是会阻塞的
    所以错不是错在中间需要停一下,而是错在calssSocket的封装有问题
      

  2.   

    数据在在客户机和服务器之间往返需要时间,服务器响应也需要时间,所以,中间肯定需要一定的停顿。
    Socket有个Available属性,可以判断当前是否有数据可以读,至少你需要判断一下这个属性的值,另外,一次读操作不一定能全部读完数据,这与网络的缓冲有关。
      

  3.   

    热爱编程的朋友请进来! 
    兴趣的加QQ群:47110748 
    我的QQ是:531345405 
    大家要支持哦 !