我编写了一个小的下载程序,用socket向web服务器发送Get请求,然后获得服务器返回的信息。我把它存在CByteArray中,在此信息中我将信息头和附带的一部分文件分离开来,但是文件最后总是出现一系列空格。小文件(缓冲可以放下的)内容结束后就全部是空格,空格字节和前面的加起来刚好是缓冲大小。大文件则是最开始的一部分和信息头一起过来,虽然没有传完,但是很多空格在末尾,同样刚好填满缓冲,以至于在第二次接收后续部分的时候不能很好的重现原文件,前后部分被那些空格格开了。究竟是什么原因造成的呢?如何解决呢?谢谢!!

解决方案 »

  1.   

    发现还没有解决,是不是接收不同类型的文件,如:gif,doc,txt等等要进行转码啊?
      

  2.   

    用BYTE来接收,根据http协议去除协议信息,然后再解析!
      

  3.   

    是缓冲的问题啊.....如果文件没有占满缓冲则要将缓冲中的没有使用的空格去除,但是一味的去除空格,即使是只去除最后的连续的空格,还是会产生问题,因为有的文件含有很多空格,比如.doc文件,很有可能分批传送该文件时候一堆连续空格被分成2部分,前一部分传过来虽说是文件自身携带的空格,但是我怎么区分呢?到底怎么样才能将文件完整的重现呢?:(