CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VC/MFC >  网络编程

问一下,socket通信怎么发送struct类型的数据,以及怎么接受啊?

楼主dan_xp(天翔)2006-03-01 17:54:13 在 VC/MFC / 网络编程 提问

是不是要序列化啊? 问题点数:100、回复次数:11Top

1 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2006-03-01 18:28:51 得分 0

可以转换成char*,然后传输,再转换回来Top

2 楼charles_y(每天上网一小时)回复于 2006-03-01 18:43:42 得分 0

一般都是先转化成char*,收到后转化回来  
   
  序列化是个好的想法,但是太难了Top

3 楼cnwolf(独狼)回复于 2006-03-01 19:15:50 得分 10

struct在内存中也是连续存放的,把它当字节流发送  
   
  接收后强制转换成struct就行Top

4 楼Atomictry(天影)回复于 2006-03-01 20:32:14 得分 40

大概是这个样子:  
  //   发送  
  void   SendMsg(CClient   *pClientSocket,   YourStruct   &outMsg)  
  {  
          pClientSocket->Send(&outMsg,   sizeof(outMsg))  
  }  
   
  //   接收  
  void   ReveMsg(CClient   *pClientSocket,   YourStruct   &inMsg)  
  {  
            int   ByteCount=pClientSocket->Receive((void   *)(&inMsg),sizeof(struct   inMsg));  
  }  
   
  //   序列化也可以,   网上的myicq源码用了序列化,你可以下载看看。Top

5 楼nuaawenlin(飘人)回复于 2006-03-01 20:51:33 得分 0

使用char   *强制转换就可以了Top

6 楼DentistryDoctor(不在无聊中无奈,就在沉默中变态)回复于 2006-03-01 22:20:06 得分 0

统一按照字节流处理。Top

7 楼HiRong()回复于 2006-03-02 01:25:10 得分 10

数据在网络中传输不分什么类型,就是一堆的01,所以就当一块char发送出去就行了Top

8 楼alen_ghl(东方求*)回复于 2006-03-02 11:13:40 得分 40

struct   packdata{  
  ...  
  ...  
  }PackData;  
   
  发送端  
   
  PackData   pd;  
  ...   //   给pd赋值  
  send(s,   (char   *)&pd,   sizeof(PackData),   0);  
   
  接收端  
  PackData   pd;  
  memset(&pd,   0,   sizeof(PackData));  
  recv(s,   (char   *)&pd,   sizeof(PackData),   0);  
  pd直接就可以用了  
   
  Top

9 楼dragonmu(dragonmu)回复于 2006-03-02 11:29:26 得分 0

建议先转成char*再发,如果是跨平台可能会存在结构对齐的问题Top

10 楼dan_xp(天翔)回复于 2006-03-02 17:58:30 得分 0

非常感谢!接分Top

11 楼vc_flying(好想学好vc)回复于 2006-03-03 16:04:46 得分 0

有道理Top

相关问题

  • SOCKET 通信
  • 求教关于socket通信
  • socket通信的问题
  • 关于socket通信问题
  • !!!求助。socket通信之eofexception!!!
  • donet的Socket通信问题
  • 高分求教-----Socket通信
  • 多线程 用socket通信
  • 求救 socket通信问题
  • 异步socket通信问题

关键词

  • 序列化
  • 转换
  • packdata
  • pclientsocket
  • inmsg
  • pd
  • outmsg
  • 发送
  • 接收
  • struct

得分解答快速导航

  • 帖主:dan_xp
  • cnwolf
  • Atomictry
  • HiRong
  • alen_ghl

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo