发送时: SendInfo.type=1; //SendInfo是结构体对象
SendInfo.version=ClientVersion;//SendInfo.version是CString类型的
nSent = psocket->Send((const char*)&SendInfo,sizeof(SendInfo),0);
接收时:int len = m_SockClient.Receive((char*)&SendInfo,sizeof(SendInfo),0);
问题出在,接收的SendInfo可以读出SendInfo.type,但是SendInfo.version却是乱码
MFC socket 发送和接收结构体 接收的缺少数据
答案:2 悬赏:50
解决时间 2021-03-01 03:59
- 提问者网友:逝爱
- 2021-02-28 06:15
最佳答案
- 二级知识专家网友:我颠覆世界
- 2021-02-28 06:56
你为什么不把CString类型的SendInfo.version改成char*类型呢?
CString类型赋给char*的方法是:char*p = str.getBuffer(str.getlength());
CString类型赋给char*的方法是:char*p = str.getBuffer(str.getlength());
全部回答
- 1楼网友:一只傻青衣
- 2021-02-28 07:12
最好是把结构体中的数据按照一定的长度复制到一个数组中
比如说,id 20字节,name 20字节 count 4字节,结构体数组中的每一个元素都要占24个字节,占不满的添 0 ,id必须占20个,name 也要占够20个,count 占4个,下一个元素就要向后排;
再就是到了接收那边也要进行相应的处理一下就可以了
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯