scoket信息发送,如何把要发送的信息打包

wxliangforwxliang 2010-02-05 04:35:11
scoket信息发送,如何把要发送的信息打包

能源码吗
...全文
94 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
Drillstudio 2010-02-08
  • 打赏
  • 举报
回复
晕倒 行李托运还需要打包呢
huazaimh 2010-02-07
  • 打赏
  • 举报
回复
从程序中给你弄了一段打包的程序,不过刚开始学可能还是不太熟悉的,呵呵!
慢慢来就好了!
/////发送的数据包格式:OxC4(1字节) + 包长度(3字节) + 图片长度(3字节) + 图片数据 +BayEventInfo结构
long lPacketSize = 7 + lPicLen + sizeof(xBayEventInfo);

BYTE *pBuff = new BYTE[lPacketSize];
pBuff[0] = 0xC4;
memcpy(pBuff+1,&lPacketSize,3);
memcpy(pBuff+4,&lPicLen,3);
memcpy(pBuff+7,varPic.pbVal,lPicLen);

memcpy(EventInfo.addrhzcode,((BayEventInfo *)varInfo.byref)->addrhzcode,16);
memcpy(EventInfo.carLPColor,((BayEventInfo *)varInfo.byref)->carLPColor,8);

//memcpy(EventInfo.addspeed,((BayEventInfo *)varInfo.byref)->addspeed)
EventInfo.addspeed = ((BayEventInfo *)varInfo.byref)->addspeed;
EventInfo.blackval = ((BayEventInfo *)varInfo.byref)->blackval;
EventInfo.cameramode = ((BayEventInfo *)varInfo.byref)->cameramode;
EventInfo.carlen = ((BayEventInfo *)varInfo.byref)->carlen;
memcpy(EventInfo.carLPID,((BayEventInfo *)varInfo.byref)->carLPID,8);
EventInfo.chanel = ((BayEventInfo *)varInfo.byref)->chanel;
memcpy(EventInfo.channelhzcode,((BayEventInfo *)varInfo.byref)->channelhzcode,16);
EventInfo.DevIp = ((BayEventInfo *)varInfo.byref)->DevIp;
EventInfo.height = ((BayEventInfo *)varInfo.byref)->height;
EventInfo.hour = ((BayEventInfo *)varInfo.byref)->hour;
EventInfo.minute = ((BayEventInfo *)varInfo.byref)->minute;
EventInfo.month = ((BayEventInfo *)varInfo.byref)->month;
EventInfo.overspeed = ((BayEventInfo *)varInfo.byref)->overspeed;
EventInfo.redtime = ((BayEventInfo *)varInfo.byref)->redtime;
EventInfo.second = ((BayEventInfo *)varInfo.byref)->second;
EventInfo.weizhang = ((BayEventInfo *)varInfo.byref)->weizhang;
EventInfo.whitewbphi = ((BayEventInfo *)varInfo.byref)->whitewbphi;
EventInfo.width = ((BayEventInfo *)varInfo.byref)->width;
EventInfo.workmode = ((BayEventInfo *)varInfo.byref)->workmode;
EventInfo.yall = ((BayEventInfo *)varInfo.byref)->yall;
EventInfo.year = ((BayEventInfo *)varInfo.byref)->year;
EventInfo.day = ((BayEventInfo *)varInfo.byref)->day;
EventInfo.speed = ((BayEventInfo *)varInfo.byref)->speed;
/////////////
char pStrPlatterNo[16] = "粤B 22689";
memcpy(EventInfo.carLPID,pStrPlatterNo,16);
////////////

memcpy(pBuff+7+lPicLen,&EventInfo,sizeof(xBayEventInfo));

m_pRecvThread->PostThreadMessage(WM_PUT_PACKET,(WPARAM)pBuff,(LPARAM)lPacketSize);
ppc686 2010-02-07
  • 打赏
  • 举报
回复
打包的弱点在于传输效率太低
rollrock1987 2010-02-06
  • 打赏
  • 举报
回复
你买外卖怎么打包的? 把菜放盒子内,把饭再放一盒子呢,然后给你一个塑料袋,你提走
代码也一样的
wb112200 2010-02-06
  • 打赏
  • 举报
回复
所谓“打包”就是把你要发送的数据给包装一下,通常都是用一个结构体来实现的。
如下:仅供参考,可根据实际情况定义
#define HEAD_LEN 4
#define DATA_LEN 2048

struct SEND_DATA
{
char szDataHead[HEAD_LEN];// 数据头
char szDataInfo[DATA_LEN];// 数据信息
int iSendNum;// 发送编号
};
Icedmilk 2010-02-06
  • 打赏
  • 举报
回复
学习
zhou1xp 2010-02-06
  • 打赏
  • 举报
回复
打包只是描述你的发送的数据大小,是否串包的一个结构体,然后在具体发送数据
sms88 2010-02-06
  • 打赏
  • 举报
回复
填进一个char[]呢
精锐掷矛手 2010-02-05
  • 打赏
  • 举报
回复
用数组或结构体打包。先包头后包体。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧