怎么将通过socket接收到的数据如(255,255,255),显示到绘图板上,求指教,

如何将通过socket接收到的数据如(255,255,255),显示到绘图板上,求指教,急,在线等
本帖最后由 fengsuiyingdong 于 2012-11-28 16:30:51 编辑
问题如下:

 我做的快视端接收外部传输过来的图像数据(包含两部分:帧头和图像数据),并即时在窗口显示图像。现在可以接收到数据,但不知如何实现显示图像

其中发送端的代码片断如下:
    QV_FrameHead qv_FrameHead;
    qv_FrameHead.Head = 0X3333; // 0X3333H
    qv_FrameHead.RowCount = 1;

    char sendBuffer[512];
    memcpy(sendBuffer,&qv_FrameHead,sizeof(qv_FrameHead));
    send(sockClient,sendBuffer,sizeof(qv_FrameHead),0);  //发送帧头数据

   send(sockClient, "255255255", strlen("255255255")+1, 0); //比如是图像数据
其中快视端接收数据代码如:

       char recvBuf[1024];    //用一大小为1024的数组存储接收到的图像数据(测试)
int flag;
flag =recv(sockConn, recvBuf,sizeof(recvBuf), 0);
recvBuf[flag]='\0';

     //从recvBuf中复制大小为结构体变量QV_Head相同的数据到QV_Head中,并返回QV_Head指针
     memcpy(&QV_Head,recvBuf,sizeof(QV_Head)); 

                    if(flag>0)
{
printf("第%d次接收数据为:\n\r",++i);

printf("QV_Head.Head=%d\n",QV_Head.Head);
printf("QV_Head.RowCount=%d\n",QV_Head.RowCount);
                           .....
                  }  //可以接收到的帧头数据并在cmd窗口打印出来
问题1 该怎么接收传输过来的图像数据
问题2 如何将接收到的图像数据以窗口的形式显示成图像(比如000 显示成一个黑色的像素,255255255 是一个白色的像素)。因为接收的过程我用的是控制台,是否需要转换成MFC程序呢?

其中:结构体QV_FrameHead为:
struct QV_FrameHead
{
int Head; // 0X3333H
unsigned int RowCount; // 发送数据的帧计数,从1开始
     .....  //其它属性
}



   求指教,求……小弟这点都尝试解决了一星期了还没成功,都快哭了都
------解决方案--------------------
这个要看你的图像接收后做什么处理了,比如要显示在窗口上,肯定要创建一个窗口的,可以使用MFC开发,接收到头之后就可以确定图像的大小吧,然后recv这么大的图形数据就可以了,然后通过帧头数据构造一个BITMAPINFO对象,然后通过StretchDIBits函数图片Buffer和BitmapInfo结构来显示到DC上。