vc中socket通信双方发送和接收结构体型数据

在socket的客户端定义了一个结构体structMsg{charmsgType;char*msgFrom;char*msgContent;};然后Msgmm;mm.ms... 在socket的客户端定义了一个结构体

struct Msg
{
char msgType;
char *msgFrom;
char *msgContent;
};

然后

Msg mm;
mm.msgType='A';
mm.msgFrom="sss";
mm.msgContent="hello";

send(serverSocket,(char*)&mm,sizeof(mm),0);

问怎么在serverSocket这边接收这个结构体,并复制数据到一个Msg类型的结构中?
展开
 我来答
孤松独海
2011-04-26 · TA获得超过1513个赞
知道大有可为答主
回答量:1220
采纳率:0%
帮助的人:494万
展开全部
比如客户端这边,将接收到的内容存在了 char* temp;变量里面
那么就可以 Msg nn;
nn.msgType=temp[1];
nn.msgFrom=++temp;
temp+=strlen(nn.msgFrom)+1;
nn.msgContent=temp;
这样就可以了,因为对于字符指针赋值,如下
char *temp="sdfsdf123\0wdfsdf\0";
cout<<strlen(temp)<<endl;
char *a=temp;// 这里貌似字符指针赋值,遇到 \0 结束标志就停止赋值
temp+=strlen(a)+1;
char *b=temp;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
chzhn
2011-04-26 · TA获得超过5343个赞
知道大有可为答主
回答量:2951
采纳率:0%
帮助的人:1478万
展开全部
struct Msg
{
char msgType;
char msgFrom[1024];
char msgContent[1024];
};

定义的时候要将字符串放在结构体内部,你那样做就放到结构体外部去了
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yinfengnong
2011-04-26 · TA获得超过5619个赞
知道大有可为答主
回答量:2344
采纳率:89%
帮助的人:2306万
展开全部
你这样做不好
客户端将收不到"sss"和"hello"
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
huohuo0000
2011-04-26
知道答主
回答量:3
采纳率:0%
帮助的人:0
展开全部
不太清楚
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式