gSOAP编译和学习
来源:互联网 发布:python kmeans 编辑:程序博客网 时间:2024/06/06 04:02
目录(?)[+]
gSOAP一种跨平台的C和 C++软件开发工具包。生成C/C++的RPC代码,XML数据绑定,对SOAP Web服务和其他应用形成高效的具体架构解析器,它们都受益于一个XML接口。
一.安装
Linux环境:ubuntu,root用户
1.下载gSOAP
gSOAP官网:http://www.cs.fsu.edu/~engelen/soap.html
2.安装编译工具:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
3.编译安装gSOAP
./configure –prefix=/usr/local/gSOAP(指定安装路径)
make
make install
______________________________Install over______________
二.学习
gSOAP两大工具
1.wsdl2h的作用是根据WSDL生成C/C++风格的头文件
- 1
- 1
wsdl2h常用选项
-o 文件名,指定输出头文件-n 名空间前缀 代替默认的ns-c 产生纯C代码,否则是C++代码-s 不要使用STL代码-t 文件名,指定type map文件,默认为typemap.dat-e 禁止为enum成员加上名空间前缀
type map文件用于指定SOAP/XML中的类型与C/C++之间的转换规则,比如在wsmap.dat里写
- 1
- 1
那么SOAP/XML中的string将转换成std::wstring或wchar_t*,这样能更好地支持中文。
2.从头文件生成存根(stub)和框架(Skeleton)源文件,soapcpp2的作用是根据头文件自动生成调用远程 SOAP服务的客户端代码(称为存根:Stub)和提供SOAP服务的框架代码(称为框架:Skeleton),另外它也能从头文件生成WSDL文件
编写SOAP程序除了头文件是不够的,还要有连接、通信、XML解析、序列/反序列化等工作。gSOAP提供的socapcpp2就是用于从头文件中生成这些代码的
- 1
- 1
生成的文件描述:
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
综上所述
如果编写服务器端,项目里应该加入soapServerLib.c,代码里包含头文件soapH.h如果编写客户端,项目里应该加入soapClientLib.c,代码里包含头文件SoapH.h(或xxxxProxy.h)当然,还要加入gsoap库里的stdsoap2.cpp文件(如果是写C代码,则加入stdsoap2.c)
如果看到soapcpp2提示:”Critical error: #import: Cannot open file “stlvector.h” for reading.“, 那是因为我们的头文件使用了STL(wsdl2h 没用-s选项),这时要使用-I选项指定gSOAP的 import文件路径,这个路径是”$gsoap\gsoap\import”:
- 1
- 1
soapcpp2常用选项
-C 仅生成客户端代码-S 仅生成服务器端代码-L 不要产生soapClientLib.c和soapServerLib.c文件-c 产生纯C代码,否则是C++代码(与头文件有关)-I 指定import路径(见上文)-x 不要产生XML示例文件-i 生成C++包装,客户端为xxxxProxy.h(.cpp),服务器端为xxxxService.h(.cpp)
Example gSOAP client(c++)
- 1
- 2
- 1
- 2
新建一个客户端程序调用计算器service:calcclient.cpp
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
Example gSOAP server(c++)
- 1
- 2
- 1
- 2
新建一个服务端程序:calcserver.cpp
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
链接:
项目主页: http://gsoap2.sourceforge.net下载地址: http://sourceforge.net/projects/gsoap2/files/latest/download项目托管地址: SvnSyncRepository: https://gsoap2.svn.sourceforge.net/svnroot/gsoap2其他链接: Documentation: http://www.cs.fsu.edu/~engelen/soapdoc2.html Developer Center: http://www.genivia.com/dev.html gSOAP users mailing list: http://tech.groups.yahoo.com/group/gsoap/ FAQ: http://www.cs.fsu.edu/~engelen/soapfaq.html 百度百科地址: http://baike.baidu.com/view/2788733.htm Github项目地址: https://github.com/stoneyrh/gSOAP
目录(?)[+]
gSOAP一种跨平台的C和 C++软件开发工具包。生成C/C++的RPC代码,XML数据绑定,对SOAP Web服务和其他应用形成高效的具体架构解析器,它们都受益于一个XML接口。
一.安装
Linux环境:ubuntu,root用户
1.下载gSOAP
gSOAP官网:http://www.cs.fsu.edu/~engelen/soap.html
2.安装编译工具:
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
3.编译安装gSOAP
./configure –prefix=/usr/local/gSOAP(指定安装路径)
make
make install
______________________________Install over______________
二.学习
gSOAP两大工具
1.wsdl2h的作用是根据WSDL生成C/C++风格的头文件
- 1
- 1
wsdl2h常用选项
-o 文件名,指定输出头文件-n 名空间前缀 代替默认的ns-c 产生纯C代码,否则是C++代码-s 不要使用STL代码-t 文件名,指定type map文件,默认为typemap.dat-e 禁止为enum成员加上名空间前缀
type map文件用于指定SOAP/XML中的类型与C/C++之间的转换规则,比如在wsmap.dat里写
- 1
- 1
那么SOAP/XML中的string将转换成std::wstring或wchar_t*,这样能更好地支持中文。
2.从头文件生成存根(stub)和框架(Skeleton)源文件,soapcpp2的作用是根据头文件自动生成调用远程 SOAP服务的客户端代码(称为存根:Stub)和提供SOAP服务的框架代码(称为框架:Skeleton),另外它也能从头文件生成WSDL文件
编写SOAP程序除了头文件是不够的,还要有连接、通信、XML解析、序列/反序列化等工作。gSOAP提供的socapcpp2就是用于从头文件中生成这些代码的
- 1
- 1
生成的文件描述:
- 1
- 2
- 3
- 4
- 5
- 6
- 1
- 2
- 3
- 4
- 5
- 6
综上所述
如果编写服务器端,项目里应该加入soapServerLib.c,代码里包含头文件soapH.h如果编写客户端,项目里应该加入soapClientLib.c,代码里包含头文件SoapH.h(或xxxxProxy.h)当然,还要加入gsoap库里的stdsoap2.cpp文件(如果是写C代码,则加入stdsoap2.c)
如果看到soapcpp2提示:”Critical error: #import: Cannot open file “stlvector.h” for reading.“, 那是因为我们的头文件使用了STL(wsdl2h 没用-s选项),这时要使用-I选项指定gSOAP的 import文件路径,这个路径是”$gsoap\gsoap\import”:
- 1
- 1
soapcpp2常用选项
-C 仅生成客户端代码-S 仅生成服务器端代码-L 不要产生soapClientLib.c和soapServerLib.c文件-c 产生纯C代码,否则是C++代码(与头文件有关)-I 指定import路径(见上文)-x 不要产生XML示例文件-i 生成C++包装,客户端为xxxxProxy.h(.cpp),服务器端为xxxxService.h(.cpp)
Example gSOAP client(c++)
- 1
- 2
- 1
- 2
新建一个客户端程序调用计算器service:calcclient.cpp
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 1
- 2
- 3
- 4
- 1
- 2
- 3
- 4
Example gSOAP server(c++)
- 1
- 2
- 1
- 2
新建一个服务端程序:calcserver.cpp
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
链接:
项目主页: http://gsoap2.sourceforge.net下载地址: http://sourceforge.net/projects/gsoap2/files/latest/download项目托管地址: SvnSyncRepository: https://gsoap2.svn.sourceforge.net/svnroot/gsoap2其他链接: Documentation: http://www.cs.fsu.edu/~engelen/soapdoc2.html Developer Center: http://www.genivia.com/dev.html gSOAP users mailing list: http://tech.groups.yahoo.com/group/gsoap/ FAQ: http://www.cs.fsu.edu/~engelen/soapfaq.html 百度百科地址: http://baike.baidu.com/view/2788733.htm Github项目地址: https://github.com/stoneyrh/gSOAP
- gSOAP编译和学习
- 编译gSOAP
- Gsoap编译
- gSoap编译
- gsoap编译
- gsoap学习
- gsoap学习
- gSoap 编译环境搭建
- gsoap编译错误 LNK2005
- CentOS编译安装gSOAP
- gsoap 编译方式
- gsoap编译C++文件
- gSOAP学习笔记
- gSoap例子学习(一)
- gSOAP的学习
- gsoap学习参考总结
- gsoap编译碰到的问题
- gsoap编译与简单使用
- TCP三次握手和四次挥手详解
- base64ToFile和fileToBase64
- codevs 1025 选菜 背包问题 解题报告
- android深入解析Activity的launchMode启动模式,Intent Flag,taskAffinity
- 为什么说TCP报文段是面向字节流的,UDP包是面向数据报的
- gSOAP编译和学习
- 欢迎使用CSDN-markdown编辑器
- 夜灵的Html笔记Day03——列表、H5结构标记、表单、Iframe
- 软件测试的管理问题
- jsonp
- 动态规划 ② HDU
- 搭建dubbo+zookeeper环境
- Kafka stream 开发碰到的问题:offset commit 失败 与 数据不准确
- 远程管理卡介绍&使用场景