网络编程send()传递参数问题和recv()接收问题!谢谢大家帮我看看~
结构体定义如下:
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




