MFC socket向android端传递图片问题

小弟在做课题时用到了MFC结合opencv,并需要把现场的摄像图像以及一些现场字符串信息发送至手机端;字符串因为有不同的类型,所以我自己在发送数据前加了标记传递,并且已经完成;因为图片的数据类型是mat,Iplimage类型的,不知道如何通过send函数传递了,而且也需要加上标记,所以希望知道方法的大神给些建议,求点函数求点代码!谢谢谢谢!

 char buffer[26528];
fread(buffer, 1, sizeof(fp), fp);
printf("%s",buffer);

//如果是这么大的数组,这里应延时,不然数据还没有读完就Send的。。。读到的二进制里面不是字符串。。可以前数组100个字节 (%x)

以文件的形式传递,把文件转换成字节数组,在接收端接收字节数组,再组装就行了

应该send和Recv 之后看看数据是否完全一致。。。

不知道过程中哪步有问题,我把服务端的一些代码和客户端的代码贴上来,各位大大看一下~
C++Server
FILE fp;

fp = fopen("F://abcd.png", "ab");
long size;
size = filesize(fp);
printf("%d\n",size);
char buffer[26528];
fread(buffer, 1, sizeof(fp), fp);
printf("%s",buffer);
send(connectSock, (char
)buffer, strlen(buffer), 0);
fclose(fp);
Java Client

{}mBufferedReaderClient.read(buffer);
                                                            byte[] buffer2=getBytes(buffer);
                            recvMap=getBitmapFromByte(buffer2);
                            msg.what=4;
                                                            if(msg.what==4){
            pcImage.setImageBitmap(recvMap);
        }//省略了一些代码   重点代码都在这了

public Bitmap getBitmapFromByte(byte[] temp){
    if(temp != null){
        Bitmap bitmap = BitmapFactory.decodeByteArray(temp, 0, temp.length);
        return bitmap;
    }else{
        return null;
    }
}
private byte[] getBytes (char[] chars) {
    Charset cs = Charset.forName ("UTF-8");
    CharBuffer cb = CharBuffer.allocate (chars.length);
    cb.put (chars);
    cb.flip ();
    ByteBuffer bb = cs.encode (cb);
    return bb.array();
}
    FILE *fp = fopen("00.png","rb");

    char czBuf[1024] = {0};
    fread(czBuf,1,sizeof(czBuf),fp);
    for (int i = 0;i < 1024;i ++)
    {
        if (((i % 10) == 0) && i != 0)
        {
            printf("\r\n");
        }
        printf("%02x ",(BYTE)czBuf[i]);     
    }

    fclose(fp);