基于gSOAP使用头文件的C语言版web service开发过程例子
gSOAP基于头文件的webservice过程 一 服务端 1 打开VS2005,创建一个工程,命名为calcServer。 2 添加一个头文件calc.h,编辑内容如下: ?
? 说明: ? 1) 前面的1-7行在生成的XML文件里会有所体现。 ? 2)第一行定义了服务名,如果第一行写成“//gsoapns service name:?? calc1”,编译时则将“calc1”当作服务名称,生成的文件中也会使用这个名称。 ?
? 3) 第2行定义了calc.wsdl的路径 4) 第3行定义了服务地址,在客服端通过这个地址再加上端口即个访问此服务端。 5)第4行也是定义了一种地址,在calc.wsdl文件里体现如下: ?
? 6) 第5 行定义了输出输出量的编码方式,使用了此行在使用soapcpp2.exe编译头时需要加“-e ”参数 ?
? 7)? 第6行定义了wsdl中的 <portType > ???
? ? ? ? ? 8) 每个函数前的注释对应calc.wsdl文件里<documentation>如上图中的每个操作的<documentation>: <documentation>Sumstwo values</documentation> 3 将gSOAP包里的bin/win32下的soapcpp2.exe和gSOAP包里的stdsoap2.h、stdsoap2.c或stdsoap2.cpp拷贝到前面创建的工程文件夹里。 4 启动dos窗口并切换到此目录下使用soapcpp2.exe生成相应的文件。 ?相关参数可使用“soapcpp2.exe –help”查询, 这里我使用了soapcpp2.exe–c –e calc.h命令,只表示生成C代码,此时会生成服务端和客户端的文件及一些头文件 。 ? ?包括soapC.c 、soapClient.c、soapClientLib.c、soapServer.c、soapServerLib.c、soapH.h、soapStub.h等文件。 ?? 如果是c++,则“.c”文件换成“.cpp”。 ?? 如果只想生成服务端文件需要加参数“- S”,如果只生成客户端程序加参数“-C”。 ? 5 将服务端需要的文件soapC.c 、soapServer.c、soapH.h、soapStub.h、stdsoap2.h、stdsoap2.c文件添加到工程里。 ?? ?不需要添加soapServerLib.c文件。 此处一定要用stdsoap2.c,如果用stdsoap2.cpp会出错。 原则是要么全部是.c的文件格式,要么全部是.cpp的文件格式。 6 创建main函数文件: ?
? 7 在工程“propertis”-> “configurationProterties”->“Debugging”->“command arguments”里添加端口参数4546。 8build 9 启动调试 10 在浏览器里输入“http://localhost:4546”。 如果得到如下信息则说明服务已经正常启动:
? ? 二 客户端 ?1 如上炮制。 ??只需将上面的soapServer.c换成soapClient.c ?2 编写客户端main函数文件
?此文件中已经设置了服务端的地址和端口。 ?3在工程“propertis”-> “configuration Proterties”->“Debugging”->“commandarguments”里添加参数“add 4.23.6”。表示进行两个数的加法 4 build 5 debug。运行,此时会得到两个参数的计算结果。 ? 三 注意事项 ? 1 int可以向double转,但double不能向int转,如4.2会变成0. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |