先用CFILE的函数用二进制读取一副图片,然后用send函数发送,但是他的第二个参数是char*类型的,如果读取的图片中有0,那么char*中的内容只有0之前的内容,   那么接受到的图片将不能正常显示!
    请问怎么办?    感谢!

解决方案 »

  1.   

    用memcpy填充buffer,当然还要加长度
      

  2.   

    不是这个意思啊  我是说 用二进制读取图片的时候  其中有0   那么char* 就会自动阶断!
      

  3.   

    是不是send(..,(char*)BYTE,...) 强制转换后发送?
      

  4.   

    send的第三个参数是长度,不论第二个参数指针是什么类型,它都会尽可能的(当然是尽可能的,有可能缓冲区没那么大地方了)复制指定长度的数据到缓冲区。所以即使用char*,并且其中有0,只要长度指定的正确不会影响发送。
      

  5.   


     那我能不将文件读出来的数据保存到BYTE 数组里面  然后强制转换为char* 发送出去呢?
      

  6.   

    BYTE* 就是 char*啊,你使用char*发过去时,实际都是发过去一些二进制的字节(0也是一个字节而已),第三个参数标识了这些二进制字节的长度。实际上你只要不把char*转成字符串的话,就不会遇到0而截断的。试试就知道了。