分类: C/C++
2008-04-02 14:37:47
一、介绍
SOAP实现远程数据存储比起DCOM以及Midas都要好,因为它可以使用80端口,并且在服务器端无需多添加一个托盘图标,部署也相当方便。
要在VC6下实现SOAP的客户端,可以使用微软提供的Soap SDK,或者是开源的gSoap(其实网上还有xSoap,eSoap等很多),如果采用微软提供的Soap SDK的话,客户端部署就稍微麻烦一些,需要注册一堆的组件,如SOAP,XML等。
gSoap是一个夸平台的,用于开发Web Service服务端和客户端的工具,使用C和C++语言编码,当看到这个东东的时候,就不会再想用微软的SDK了。
二、实例介绍
例子的服务器端使用C#开发的ASP.NET Web Service,客户端使用gSoap,例子的内容相当简单,就是测试连接。
三、创建服务器端
在VS2003里面新建一个ASP.NET Web 服务MyWebService,创建函数如图所示:
使用[WebMethod]来标识对外输出的函数名。点击运行会出现如下页面:
四、创建客户端
首先,点击服务说明,将WSDL使用查看源代码的方式存储为MyService.wsdl文件。
然后,使用开源的WsdlToCode工具,创建客户端代码:
选择之前产生的wsdl文件后,点击生成按钮,产生的文件如下图:
第三,在VC6.0下创建基于对话框的工程TestClient,将MyServiceSoap.nsmap,soapC.cpp,soapClient.cpp,soapH.h,soapStub.h,以及gSoap工程根目录下的stdsoap2.h,stdsoap2.cpp,总共七个文件添加到工程,再添加代码:
在对话框类中添加头文件包含。
#include "MyServiceSoap.nsmap"
代码编写如下图:
修改soapC.cpp,soapClient.cpp,stdsoap2.cpp的编译条件为不需要预编译头文件,gSoap不需要MFC。
第四,运行结果:
编译后运行,效果如下:
五、问题