gsoap编译与简单使用

本文介绍了如何编译gSOAP工具并利用其生成C++服务器端代码。首先,通过官网下载并安装gSOAP,接着使用wsdl2h和soapcpp2工具解析WSDL文件并生成头文件及服务代码。以一个简单的加法服务为例,展示了如何创建服务接口、生成服务器文件,并最终编译运行服务器程序。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 官网下载gsoap2.8.8.zip
2 安装gsoap 
a):如果在windows下  直接解压缩 会有一个gsoap2.8的目录。在\gsoap-2.8\gsoap\bin\ 目录下面有对应的
b):在linux下解压成gsoap2.8的目录,安装。安装步骤
./configure
make
make install
装gsoap 需要安装openssl 才能安装成功

c)windows下我没有安装。直接用bin目录下面的 wsdl2h 和soapcpp2工具
linux安装之后 wsdl2h 和soapcpp2 工具直接可以用
wsdl2h 根据webserveic生成 .h文件,soapcpp2根据生成.h文件生成相应的调用文件
这两个工具使用方法如下:
注1 :wsdl2h的用法(WSDL/schema 解析和代码生成器) wsdl2h [opt] 头文件名 WSDL文件名或URL wsdl2h常用选项
-o 文件名,指定输出头文件
-n 名空间前缀 代替默认的ns
-c 产生纯C代码,否则是C++代码
-s 不要使用STL代码
-t 文件名,指定type map文件,默认为typemap.dat
-e 禁止为enum成员加上名空间前缀 type map文件用于指定SOAP/XML中的类型与C/C++之间的转换规则,比如在wsmap.dat里写
在本例中,使用的是:
wsdl2h -s -o calc.h http://www.cs.fsu.edu/~engelen/calc.wsdl
参数s就表示生成不带STL的C/C++语法结构的头文件calc.h。如果不用s就会生成带STL的头文件,这样,在后边的编译中需要加入STL的头 stlvector.h,位于:gsoap/import/目录下。
注2 :soapcpp2的用法(编译和代码生成器) soapcpp2 [opt] 头文件名 soapcpp2常用选项
-C 仅生成客户端代码
-S 生成

gsoap-2.8源码,基于服务器客户端的实例,带自动生成服务客户端代码的批处理程序,及如何使用。带自己学习参考的教程; 0.解压附件,soapInterface.bat所在路径不得含中文 空格 1.新建头文件 取soapInterface.bat文件的同名:soapInterface.h 文件内编写接口,具体说明看附件参考的教程 //gsoap ns service name: gservice //gsoap ns service style: rpc int ns__add(int num1, int num2, int* result ); int ns__sub(int num1, int num2, int* result ); int ns__mult( int num1, int num2, int *result); int ns__divid( int num1, int num2, int *result); 2.从附件内gsoap-2.8包中搜索复制stdsoap2.h,stdsoap2.cpp,soapcpp2.exe, 存放于soapInterface.bat同级目录 3.双击soapInterface.bat运行。生成gClientSoap,gServerSoap两个文件夹,分别复制到服务器工程客户端工程中使用 4.gClientSoap,gServerSoap两个文件夹内用到的文件功能说明,更多参考附件教程 1)soapC.cpp , soapH.h//soap的序列和反序列代码,它已经包含了soapStub.h 2)soapServer.c ppsoapServerLib.cpp //服务器端代码(纯C代码是soapServer.c soapServerLib.c ),soapServerLib.cpp文件则只是简单地包含soapServer.cpp和soapC.cpp 3)soapClient.cpp soapClientLib.cpp//客户端代码(纯C代码是soapClient.csoapClientLib.c ),soapClientLib.cpp文件则只是简单地包含soapClient.cpp和soapC.cpp 4) soapStub.h // soap的存根文件,定义了我们编写的头文件里对应的远程调用模型 5) add.nsmap //XML服务命名空间 6)服务器端要载入的文件有:soapServer.cpp,soapC.cpp,stdsoap2.cpp; 要包含的文件有:gservice.nsmap,soapH.h; 客户端要输入的文件有: soapClient.cpp,soapC.cpp,stdsoap2.cpp; 要包含的文件有:gservice.nsmap,soapH.h
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值