gsoap入门--用goap写一个加法的WebService

本文介绍了如何使用gsoap库在C++中实现一个简单的加法WebService。通过实例展示了如何使用wsdl2h和soapcpp2工具生成服务端和客户端代码,并解释了相关文件和注释的作用。最后,提供了服务端和客户端的代码示例,验证了加法运算的正确性。
摘要由CSDN通过智能技术生成

    毕业设计要用到WebService,但是本人不会java,就想着用c/c++来写WebService。网上查找了相关资料,就知道了gsoap。

    从gsoap的官方网站http://www.cs.fsu.edu/~engelen/soap.html中下载了最新版本,里面会有相关技术文档。

    本人觉得学习一个新的东西最快捷的方式就是马上动手实践了,这样可以大大的加深的理解原理和使用方法。而如果只是停留在文档的学习上,那学习的进度会很慢,因为知识点的不断增加,仅仅靠记忆很难理清楚各个点的作用和相互关系。所以一般就可以通过动手实验,把知识点深化到经验层面,一点点地深入就会变得简单许多。(写些这些仅作为个人学习方法的总结。)

   转入正题,先简单介绍下。

   在bin文件下有两个已经编译好的程序:soapcpp2, wsdl2h。

   官方文档中有两句:   

  • The wsdl2h WSDL/schema importer and data binding mapper tool.
  • The soapcpp2 stub/skeleton compiler and code generator.

   wsdl2h是一个服务导入和数据绑定、转换的工具,soapcpp2则是寸根/框架的编译器和代码生成器。至于什么是寸根,我的理解就是相当于一种上下文运行环境。

   注意这两个程序是可以再进行定制编译的,因为需要一些特殊的服务或功能,可以在开发时自行进行重新配置和编译。

   现在转入例子说明。

   这个例子我写了一个加法的webService。服务器属于单线程程序,直接贴出服务端的代码,文件名

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
使用 gSOAP 可以很方便地创建 Web 服务端点。下面是一个简单的示例,展示了如何使用 gSOAP 创建一个 Web 服务端点: 1. 首先,需要安装 gSOAP 库,并使用 wsdl2h 工具从 WSDL 文件生成 C/C++ 头文件。 2. 在生成的头文件中定义 Web 服务端点的接口。 ```c // MyWebService.h // This file was generated with the command: wsdl2h -o MyWebService.h http://example.com/MyWebService.wsdl // This file should be included in the server and client applications. #ifndef MyWebService_H #define MyWebService_H #include "soapStub.h" // gSOAP runtime header int ns__add(struct soap* soap, double a, double b, double& result); #endif // MyWebService_H ``` 3. 在实现文件中实现 Web 服务端点的接口。 ```c // MyWebService.cpp #include "MyWebService.h" int ns__add(struct soap* soap, double a, double b, double& result) { result = a + b; return SOAP_OK; } ``` 4. 在 main 函数中启动 Web 服务端点。 ```c // main.cpp #include "soapH.h" #include "MyWebService.h" int main() { // Initialize the gSOAP runtime struct soap soap; soap_init(&soap); // Register the Web service function ns__add with the gSOAP runtime soap_register_ns__add(&soap, ns__add); // Bind the Web service to a TCP port and listen for connections if (soap_bind(&soap, NULL, 8888, 100) < 0) { soap_print_fault(&soap, stderr); exit(1); } // Handle incoming HTTP requests indefinitely while (true) { soap_accept(&soap); soap_serve(&soap); soap_end(&soap); } // Free the gSOAP runtime resources soap_done(&soap); return 0; } ``` 这个示例中,我们实现了一个名为 "add" 的 Web 服务端点,可以接受两个浮点数作为输入参数,并返回它们的和。我们通过在 main 函数中注册和绑定该服务端点,将其绑定到本地的 TCP 端口 8888,并启动一个循环来处理传入的 HTTP 请求。 使用 gSOAP 可以很方便地创建 Web 服务端点,而且可以在不同的编程语言之间共享 Web 服务。但是,由于 gSOAP 需要使用 SOAP 协议,因此可能存在一些性能上的问题。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值