位图打包问题
在截取屏幕位图时分别捕获屏幕位图结构和数据,即得到m_bmpBit(BITMAP m_bmpBit; //桌面位图结构)和m_pBmpData(char *m_pBmpData; //桌面位图数据), 想要将两者分别打包发送。由于我利用的同一个socket既发送位图数据,又发送字符数据,所以要利用打包里的控制信息在接收方来判断是那种信息,之后接收方做出相应的响应。
一下是发送字符数据时对字符数据进行打包的代码,如何能仿照这个格式给位图数据进行打包,以便于判断第一个long的类型。
int nLength = m_strMsg.GetLength();
//设置本次数据发送的长度
const int nBufLen = nLength + sizeof(long) * 2;
char *pBuffer = new char[nBufLen];
memset(pBuffer, 0, nBufLen * sizeof(char));
//在缓冲区填写发送数据的类型
*(long*)pBuffer = MH_TYPE;
//在缓冲区填写发送数据的长度
*(long*)(pBuffer + sizeof(long)) = nLength;
char *pBufText = pBuffer + sizeof(long) * 2;
//将需要发送的信息复制到缓冲区
memcpy(pBufText, (const void*)m_strMsg.GetBuffer(0), nLength);
send(m_hSocket, (const char*)pBuffer, nBufLen, 0);
delete [] pBuffer;