小问题,发送结构时,接收到显示里面的字符从第五位开始就是乱码.为什么

hehou 2004-08-30 05:10:11
typedef struct _PerUser
{
char usercode[30]; //检查代码
char userpwd[30];
char area[4]; //区域
}PerUser,*pPerUser;

pPerUser uinfo;

send(cskt,(char *)uinfo,sizeof(uinfo),0)

recv(rsocket,(char *)uinfo,100,0)
或recv(rsocket,(char *)uinfo,sizeof(PerUser),0)

为什么显示uinfo->usercode前四位正确后都是乱码??
...全文
106 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hehou 2004-08-31
  • 打赏
  • 举报
回复
对不起,是我自己写错了.
send(cskt,(char *)uinfo,sizeof(uinfo),0)
uinfo是指针类型.固长度为4.
cadinfo 2004-08-30
  • 打赏
  • 举报
回复
绝对是结构体或者接收长度出错,
这种问题在调试时不易查出,但是我有过这样的经验
我们在unix下做网络发包,接收错误就查buffer长度
你仔细检查下程序吧。
large_small 2004-08-30
  • 打赏
  • 举报
回复
接收时长度处理有问题吧
oyljerry 2004-08-30
  • 打赏
  • 举报
回复
接收后,最好把usercode数组中的值逐个赋值
danfeng 2004-08-30
  • 打赏
  • 举报
回复
把结构初始化一下呢

pPerUser uinfo;
memset(uinfo, 0, sizeof(uinfo));

18,363

社区成员

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

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