为何我先在客户端将一段数据发送到服务器端没有错误发生,但在服务器端做了一些修改后,又重新发送回到客户端
时就不是完整的信息了,只是原来信息的前几个字符,不知为何会产生这种情况,还请高手指教!!!
如何修改正确??????????

解决方案 »

  1.   

    检查了一下,是客户端没有将我所期望的所有数据发送出去,只发送了几个字节
    不知为何!都可能是那些错误??怎样修改呢???
    还有就是我在同一个程序里第一次发送时是成功的,一切都正常,错误是在第二次发送时产生的(迷惑!)
    发送的数据是我自定义的一个结构然后将它转换为char*型,再发送出去的
     
      

  2.   

    是不是转换为char*之后,发送长度用的是strlen?strlen遇到\0就算字符串结束了
      

  3.   

    发送长度用的不是strlen,用的是sizeof()!!!
      

  4.   

    while(length)
    {
        send();
    }
      

  5.   

    不好意思,是我将传送长度搞错了,先谢谢大家回答!
    又遇到了另一个问题就是:
    我先将传送过来的数据放进char 数组中然后将其转换为我自己定义的数据结构
    struct Msg{
    char stop;
    char mes[10];
    char user[10];
    };
    char buf[100];
    memset(buf,0,sizeof(buf));
    Msg msg*=(Msg*)buf;
    当我使用下面语句时却出了错误??
    CString mes=msg->mes;
    MessageBox(mes);
    原本我在mes[10]中存的是:"2008120124"
    但是用消息框查看时显示的却是:"2008120124"+乱码
    不知为何??
    即使改为CString mes=msg->mes+'\0';错误依然会发生
    请高手指点!!!!!!!!!!
    感激!!!!!!!!!