社区
网络及通讯开发
帖子详情
关于缓冲区的问题,急!!
zhyuanbaron
2005-07-06 04:53:17
我定义了
DATA_BUFFER 结构体用于存放数据
PACKET_HEAD 结构体来给数据添加通信包头
想把这两个结构体都 copy 到发送缓冲区 SendBuf 中通过 socket 发送,但不知道怎么把两部分接上啊??
用 memcpy 是不是从头开始copy??能连着用两次把包头和包体接上吗?
另外:缓冲区通常设置成什么类型的?BYTE VOID 还是其他什么??这个类型与里面存放的数据有什么关系吗?
我很菜的,请大家帮帮忙啊!最好有代码
...全文
164
4
打赏
收藏
关于缓冲区的问题,急!!
我定义了 DATA_BUFFER 结构体用于存放数据 PACKET_HEAD 结构体来给数据添加通信包头 想把这两个结构体都 copy 到发送缓冲区 SendBuf 中通过 socket 发送,但不知道怎么把两部分接上啊?? 用 memcpy 是不是从头开始copy??能连着用两次把包头和包体接上吗? 另外:缓冲区通常设置成什么类型的?BYTE VOID 还是其他什么??这个类型与里面存放的数据有什么关系吗? 我很菜的,请大家帮帮忙啊!最好有代码
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
4 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
僵哥
2005-07-09
打赏
举报
回复
char buffer[MAX_BUFFER_SIZE];
memcpy(buffer,head,sizeof(PACKET_HEAD));
buffer += sizeof(PACKET_HEAD);
memcpy(buffer,data,sizeof(DATA_BUFFER));
========================================
buffer += sizeof(PACKET_HEAD);//错误代码,逻辑错误,buffer是buffer数组的头指针,若将该指针移动了,那么该数组将失去数组的意义,在此例当中将有可能会有sizeof(PACKET_HEAD)大小的内存失去管理,极其不符合逻辑。
zhyuanbaron
2005-07-09
打赏
举报
回复
如果这样定义那??
char buffer[MAX_BUFFER_SIZE];
memcpy(buffer,head,sizeof(PACKET_HEAD));
buffer += sizeof(PACKET_HEAD);
memcpy(buffer,data,sizeof(DATA_BUFFER));
buffer 是 char 类型的,head 是 PACKET_HEAD 类型的
要是不强制转换,就按上面的memcpy那样来做会不会有问题啊??
clockwise3
2005-07-09
打赏
举报
回复
ps:
缓冲区申明成什么类型不是关键的,只是分配的时候大小不同,如果你知道你存了什么东西直接强制转换
clockwise3
2005-07-09
打赏
举报
回复
DATA_BUFFER *data = new DATA_BUFFER ;
PACKET_HEAD *head = new PACKET_HEAD;
char *buffer = (char*)malloc(sizeof(DATA_BUFFER )+sizeof(PACKET_HEAD ));
memcpy(buffer,head,sizeof(PACKET_HEAD));
buffer += sizeof(PACKET_HEAD);
memcpy(buffer,data,sizeof(BUFFER));
一键快速配置固定IP地址
什么是固定IP配置工具? 一款运行于 Windows 的桌面程序, 提供图形化界面来查看本机网络信息, 并一键将网卡设置为固定IP地址。 解决什么
问题
? · 手动用 netsh 命令设置固定IP, 记忆成本高、易出错 · Windows 控制面板路径深, 操作繁琐 · 服务器/工控机/测试机需固定IP, 无快速工具 交付形态: 单个 SetFixedIP.exe 文件, 双击即用, 无需任何安装依赖。
Python OpenCV Navier-Stokes图像修复 破损掩码对照
Python OpenCV Navier-Stokes图像修复 破损掩码对照 用 INPAINT_NS 修复刮痕破损,输出破损/掩码/修复对照图与 inpaint_report.csv,可换本地图片。 功能: · Navier-Stokes 修复 · 破损/掩码/修复对照 · inpaint_report.csv · 刮痕演示掩码 · 可换本地图片 · 打包时预跑 output/preview 压缩包含可运行源码、依赖与说明,按 README 安装后即可复现。
C#源码图像操作计时器例子
C#源码图像操作计时器例子
Protocol Buffers - Google 的数据交换格式
Protocol Buffers(简称 protobuf)是 Google 开发的一种语言无关、平台无关、可扩展的结构化数据序列化机制。您可以在 protobuf 文档 中了解更多相关信息。
ai-job-search(Python)
「ai-job-search(Python)」是开发框架(Python)。项目简介:The job search that runs on your machine. AI job application framework built on Claude Code: evaluate postings, tailor CVs, write cover letters, prep interviews. Fork it and own it.源码完整,下载解压即可查看使用,适合学习参考、课程设计与二次开发。
网络及通讯开发
1,317
社区成员
8,874
社区内容
发帖
与我相关
我的任务
网络及通讯开发
C++ Builder 网络及通讯开发
复制链接
扫一扫
分享
社区描述
C++ Builder 网络及通讯开发
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章