您的位置:首页 > 其它

gsoap how to use

2012-09-04 09:46 204 查看
1. 下载gsoap.

2. 下载的gsoap包含soapcpp2.exe 和 wsdl2h.exe 文件

3. 服务器端可以通过WSDL或者简单文件的方式来定义接口, 这里采用简单文件来定义一个简单的加法和减法操作

int ns__Add(int a, int b, int &c);

int ns__Sub(int a, int b, int &c);

注意返回值必须是int, 参数类型是简单的内置类型或者自定义的接口体, 也可以使用vector, 但是需要额外的import头文件。

函数的最后一个参数是表示函数真正的返回值, 如果不希望函数有返回值, 可以用void(*)有不有指针不记得了, 可以网上查

4. 头文件定义好了后, 这里假定为calculator.h, 运行soapcpp2.exe -i calculator.h, 将会在当前目录下产生一堆文件。

这些文件有的是给服务器用的, 有的是给客户端用的。

5. 不管是服务器还是客户端都需要从gsoap的目录下的stdsoap2.cpp 和 stdsoap2.h, 已将刚刚产生的soapC.cpp

6. 服务器端还需要soapService.cpp, 另外需要从Service类继承一个子类 去实现Add和Sub方法, 也需要包含

#include "ns.nsmap"

#include "soapService.h"

这里假定一个类

class CCalculator : public Service

{

public:

int Add(int a, int b, int &c)

{

c = a + b;

return SOAP_OK;

}

int Sub(int a, int b, int &c)

{

c = a - b;

return SOAP_OK;

}

};

运行的代码是

CCalculator soap;

soap.run(1000);

7. 客户端引入soapProxy.cpp

#include "ns.nsmap"

#include "soapProxy.h"

void main()

{

Proxy p("http://localhost:1000");

int c;

p.Add(1, 2, c);

p.Sub(1, 2, c);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: