各位高手看过来;我用SOCKET API连接服务器的80端口,也就是实现一个IE的功能,但得到的结果与IE的结果不一样,总要多几字节!IE发什么请求信息,我的程序也发相同的请求信息,但收到的不一样,收到的文件头没有什么不同,但文件内容里的回车(ASCII 0X0D)都是两遍.所以,原来文件中的0d0a回车换行,都成0d0d0a了.

解决方案 »

  1.   

    我搞定了,写书的人太差了!(八成是复制粘贴来的)源代码都好几处都有问题,用什么strset,用memset多好!(此其一)其实接收到的内容是对了,是写入文件的时候,变化了,用的是fopen,fprintf写入文件,但是以文本方式打开的文件(a+),我最后改成二进制方式就对了(a+b).如果以文本方式,写入的时候都会再加一个0d.害得我,还用JAVA也写了一个客户端来试,接收到的内容对不对!ms也是,不管我是以文本方式还是二进制方式,我传什么东西,你就应该写入什么东西啊。怎么多写一些呢!朋友们测试一下这段代码,会不会出问题!void LogFile(char *p)
    {
        FILE *fp=fopen(fname,"a+");
        fprintf(fp,"%s",p);
        fclose(fp);
    }LogFile("ab\r\ncd\r\n");
      

  2.   

    LogFile("ab\r\ncd\r\n");
    写入11个字节\n 本来就是0X0D0A
    所以你的\r
    是多余的
      

  3.   

    DeadWolf(三角小眼睛又邪又媚又笨又呆又奸又诈又色) ( ) 信誉:100  2006-4-19 13:28:20  得分: 0  
     
     
       
    不好意思 数错了
    应该是10个字节不过按搂住的意思 \r应该是多余的  
    不是啊,按文本方式与二进制方式打开文件写入的内容完全不一样!