gsoap中如何发送结构体数组

xhjbeidoulong 2009-09-14 07:37:25
我定义了如下结构体和函数
struct SRecord
{
char *aaa;
char *bbb;
}

struct REQINFO
{
char *aaa;
char *bbb;
int ccc;

int nRecord;
struct SRecord* recordList;
};

int ns__XXXReq(struct REQINFO *req, int *bOK);

然后我在Client端代码这样写:
struct record req;
struct SRecord record[2];

req.aaa = "12345";
req.bbb = "41231";
req.sessionID = "12345678";
req.ccc = 1;
req.nRecord = 2;
req.recordList = (struct SRecord*)&record;

record[0].aaa = "aaa";
record[0].bbb = "bbb";
record[1].aaa = "ccc";
record[1].bbb = "ddd";

int bOK=0;
soap_call_ns__billReq( &add_soap, server, "", &req, &bOK);

结果抓包发现, 只打包了record中的第一个;


不知应该如何实现结构体数组传送?


...全文
602 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hphua 2010-09-29
  • 打赏
  • 举报
回复
hjbeidoulong 的解决办法有问题,发送方struct SRecord *recordPrt[2];是个野指针,会出问题。
xhjbeidoulong 2009-09-15
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 waistcoat16 的回复:]
gsoap你应该用它的工具来生成类,不能这么自己定义的。

[/Quote]
实际上,我是用VC作gsoap服务端, 只是又作了一个gsoap客户端作测试.
所以,我需要根据VC的.h文件生成, wsdl, 及其它soap文件.



[Quote=引用 2 楼 xsgluozi 的回复:]
一个一个的发不就可以了吗
[/Quote]
呵呵, 不要逃避问题.
xhjbeidoulong 2009-09-15
  • 打赏
  • 举报
回复
终于搞定!

struct SRecord
{
char *aaa;
char *bbb;
} ;

struct SRecordArray
{
struct SRecord **__ptr;
int __size;
};

struct REQINFO
{
char *aaa;
char *bbb;
int ccc;

struct SRecordArray* recordList;
};

int ns__XXXReq(struct REQINFO *req, int *bOK);

然后我在Client端代码这样写:
struct SRecordArray array;
struct SRecord record[2];
struct SRecord *recordPrt[2];
array.__size = 2;
array.__ptr = recordPrt;
recordPrt[0] = &record[0];
recordPrt[1] = &record[1];

record[0].aaa = "aaa";
record[0].bbb = "bbb";
record[1].aaa = "ccc";
record[1].bbb = "ddd";

struct record req;
req.aaa = "12345";
req.bbb = "41231";
req.sessionID = "12345678";
req.ccc = 1;
req.recordList = &array;

int bOK=0;
soap_call_ns__billReq( &add_soap, server, "", &req, &bOK);
xwsn007 2009-09-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 waistcoat16 的回复:]
gsoap你应该用它的工具来生成类,不能这么自己定义的。

[/Quote]

说的没错!
晒月光的青蛙 2009-09-14
  • 打赏
  • 举报
回复
一个一个的发不就可以了吗
WaistCoat16 2009-09-14
  • 打赏
  • 举报
回复
gsoap你应该用它的工具来生成类,不能这么自己定义的。

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧