Server - 严重错误记录(代码对比)

一、代码对比


​
//接收头部代码 - 正确代码
char szRecv[4096] = {};
int nLen = (int)recv(_cSock, szRecv, sizeof(DataHeader), 0);
DataHeader* header = (DataHeader*)szRecv;
//接收头部代码 - 错误代码
DataHeader recvDH;
int nLen = recv(_cSock, (char*)&recvDH, sizeof(recvDH), 0);

//接收数据代码 - 正确代码
recv(_cSock, szRecv + sizeof(DataHeader), header->dataLth - sizeof(DataHeader), 0);
LoginRst* loginrst = (LoginRst*)szRecv;
printf("服务器发送来的登入消息:%d\n", loginrst->rst);

//接收数据代码-错误代码
int ret = recv(_cSock, (char*)(&login + sizeof(DataHeader)), sizeof(Login) - sizeof(DataHeader), 0);
printf("用户姓名:%s 用户密码:%s\n", login.usrName, login.passWord);

​

二、分析


使用缓存区,没有剥离原有的数据结构,没有使用缓存区导致错误

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

莫忘输赢

莫忘输赢 - 收钱袋

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值