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

网络编程send()传递参数问题和recv()接收问题!谢谢大家帮我看看~

楼主yst_killed(不会游泳的鱼)2004-12-03 13:46:03 在 VC/MFC / 网络编程 提问

结构体定义如下:  
  typedef   struct   _tagPageBlock{  
  char   szPageName[128];   //文件名称包括后缀格式  
  char   szPagePath[128];   //保存相对路径    
  int   iResult;   //0   error,other   success  
  unsigned   long   iOffset;   //On   32-bit   platforms,   long   is   synonymous   with   int.  
  unsigned   long   iLength;   //this   page   length;  
   
  }PageBlock;  
   
  自己初始化了一下  
  PageBlock*   sendinfo;  
  sendinfo   =   new   PageBlock[20];  
  ASSERT(sendinfo!=NULL);  
  strcpy(sendinfo[0].szPagePath,"1.txt");  
  strcpy(sendinfo[0].szPageName,   "1.txt");  
  sendinfo[0].iLength   =   2000;  
  sendinfo[0].iOffset   =   0;  
  sendinfo[0].iResult   =   1;  
   
  strcpy(sendinfo[1].szPagePath   ,"d:\\abc");  
  strcpy(sendinfo[1].szPageName   ,"2.txt");  
  sendinfo[1].iLength   =   1000;  
  sendinfo[1].iOffset   =   2000;  
  sendinfo[1].iResult   =   1;  
   
  问题如下:sock的前面已经弄好了,现在就是数据传递和接收问题  
  在client端用send()想把这个结构体数据传过去,在server端用recv(   )接收  
  可是send()   、recv()的传递数据参数怎么也设置不好,接收也不知道如何弄,希望大家帮我一下!  
  分不多,实在是没分了! 问题点数:20、回复次数:15Top

1 楼yst_killed(不会游泳的鱼)回复于 2004-12-03 14:14:03 得分 0

怎么没人,就说分少也不至于把!CSDN不是吧Top

2 楼yst_killed(不会游泳的鱼)回复于 2004-12-03 15:43:28 得分 0

自己顶Top

3 楼weiziyuner(烂人)回复于 2004-12-03 15:55:13 得分 0

楼主用强制类型转换试试  
  char   *send=(char   *)sendinfoTop

4 楼zjlion(晴海)回复于 2004-12-03 15:55:59 得分 5

想传一个结构体?  
  需要要序列化。Top

5 楼yst_killed(不会游泳的鱼)回复于 2004-12-03 16:02:46 得分 0

是传递一个结构体数组Top

6 楼yst_killed(不会游泳的鱼)回复于 2004-12-03 16:04:39 得分 0

我现在就想把上面的sendinfo结构体数组传递过去用send()  
  在server端我用recv接收,就是这块不知道如何写~??总是出问题~~  
  //send(   )  
   
   
  //recv()Top

7 楼yst_killed(不会游泳的鱼)回复于 2004-12-03 16:53:29 得分 0

还没有解决Top

8 楼pclili(黑客天使)回复于 2004-12-04 02:14:18 得分 10

PageBlock   page;  
  strcpy(page.szPageName,   "1.txt");  
  ......  
   
  //send  
  send((char*)&page,   sizeof(page),   ...);  
   
  //reev  
  PageBlock   recvpage;  
  recv((char*)&recvpage,   sizeof(recvpage),   ...);  
  AfxMessageBox(recvpage.szPageName);  
  这样就可以正确显示了。  
  如果要发20个,还是老老实实一个个的发,别指希望用你这个结构一次发过去。  
  除非你这样  
  struct   pagelist  
  {  
          PageBlock   page[20];  
  }PageList;  
   
  PageList   plist;  
  //初始化plist[0],   plist[1],   ...  
  再发送和接收上面说的相同Top

9 楼HunterForPig(留着口水的猪)回复于 2004-12-04 09:26:32 得分 5

没见过成功的传输这种结构体数组  
  类似的还有list   ,vector,  
  像这些东东暂时知道的解决方法就是一个一个传!:(  
  Top

10 楼oyljerry(【勇敢的心】→ ㊣提拉米苏√㊣)回复于 2004-12-04 16:15:15 得分 0

一个个可以发送过去Top

11 楼pclili(黑客天使)回复于 2004-12-04 21:26:40 得分 0

我说的方案可行吧。楼主怎么也不说句话Top

12 楼fsxdxh(假行僧)回复于 2004-12-04 21:32:27 得分 0

楼主用强制类型转换试试  
  char   *send=(char   *)sendinfo  
  -----------------------------  
  就是这样传!Top

13 楼fu256(大圣)回复于 2004-12-04 23:54:00 得分 0

pclili(黑客天使)    
        说的不错  
  Top

14 楼yst_killed(不会游泳的鱼)回复于 2004-12-06 11:29:46 得分 0

谢谢大家,问题解决了~~Top

15 楼lindex(this)回复于 2005-01-01 19:24:45 得分 0

序列化吧Top

相关问题

  • 为什么winsock编程中接收缓冲区不会因为接收函数recv()的调用而更新?
  • 请问在网络编程中用recv来接收数据,怎么辨别接受完成呢?
  • SDK编程中如果取得参数?
  • spring、编程式事务、参数 问题?
  • 参数接收的问题??????????
  • SOCKET编程,接收数据不完整?
  • 标签不能接收参数!!!激呀!!
  • 如何让接收运行参数
  • 关于静态页面接收参数
  • 带空格的参数接收问题

关键词

  • 结构
  • 数据
  • sendinfo
  • szpagename
  • recvpage
  • 接收
  • pageblock
  • recv
  • szpagepath
  • 传递

得分解答快速导航

  • 帖主:yst_killed
  • zjlion
  • pclili
  • HunterForPig

相关链接

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

广告也精彩

反馈

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