本帖最后由 itinfm 于 2011-06-26 21:41:15 编辑

解决方案 »

  1.   

    你用程序来模拟网页的http通信啊!!这个……嘿嘿,没整过
      

  2.   

    调试中断在红色的代码处,rev中没有"pass="字符串,应该怎么写呢?
    -------------------
    哪里错了呢?Debug下call stack出错在哪里?
      

  3.   

    错在这一句if(*(p+strlen("pass="))!=0),p指针为空!!!login:
        int i=SendToIE(s,login);
        if(i>0)
        {
            recv(s,rev,MAXDATASIZE,0);
           char *p=strstr(rev,"pass="); 
           if(*(p+strlen("pass="))!=0)
           strcpy(pass,p+strlen("pass="));
        }
        if(strcmp(pass,g_password)!=0)
        {
            memset(pass,0,sizeof(char)*MAXDATASIZE);
            memset(rev,0,sizeof(char)*MAXDATASIZE);
            goto login;
        }
      

  4.   

    你要先判断一下p是否为NULL,当p==NULL时,说明rev里没有 pass= 这个字符串,运行后当然会出错了
      

  5.   

    改成 login:
    int i=SendToIE(s,login);
    if(i>0)
    {
    recv(s,rev,MAXDATASIZE,0);
    char *p=strstr(rev,"pass=");  
    //////////////////////////////////////////////////////////////////////////
    if(p==NULL)
    {
    memset(pass,0,sizeof(char)*MAXDATASIZE);
    memset(rev,0,sizeof(char)*MAXDATASIZE);
    goto login;
    }
    //////////////////////////////////////////////////////////////////////////
    if(*(p+strlen("pass="))!=0)
    strcpy(pass,p+strlen("pass="));
    }
    if(strcmp(pass,g_password)!=0)
    {
    memset(pass,0,sizeof(char)*MAXDATASIZE);
    memset(rev,0,sizeof(char)*MAXDATASIZE);
    goto login;
    }试试