gsoap使用点滴


  今天不记录无聊的生活,记录技术问题,技术也是生活的一部分。gsoap探索中的点滴。

  内存管理部分:
  1、gsoap所有out出去的数据必须自己分配空间,写入数据;而in进来的数据由gsoap自动完成,我们所需的只是把in函数的返回的数据指针保存到相应位置。
  2、gsoap每次在接受数据的时候都会回收一些临时分配的动态内存,如果SOAP头,如属性表等等,所以不能指望某些数据初始化一次就可以在整个回话期间起作用,必须自己加入代码或者方法去实现这个功能。
  3、如果想让gsoap自动管理内存,就应该用soap_malloc()去分配所有的动态空间,反之自己解决。
  4、注意会话结束的时候用malloc_done()去重置soap上下文,soap_unlink()可以取消某个内存与soap的关联,soap_dealloc()可以单独释放一块被soap使用的内存。

  数据通信部分:
  1、gsoap生成的代码一般Header信息不完善,注意可能会需要手工制定Header结构,重写/修改in out default serialize等相关函数。
  2、如果接受soap信息时,忽略头部的某些信息例如mustUnderstand,则程序会返回一个忽略了需要注意的信息的错误,注意按需修改Header处理部分。
  3、gsoap生成代码时,会给PRC方法包装成一个soap元素,而元素的内容就是RPC方法的输入参数,所以对于不需要包装,或者需要自主包装的需求,则要更改.h文件中RPC方法的方法名或者参数格式。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
使用gSOAP生成Onvif服务端,你需要按照以下步骤操作: 1. 下载和安装gSOAP:首先,你需要从gSOAP官方网站(https://www.genivia.com/downloads.html)下载并安装gSOAP工具包。根据你的操作系统选择合适的版本,并按照官方文档进行安装步骤。 2. 定义服务接口:使用gSOAP的接口定义语言(IDL)来定义你的Onvif服务接口。在IDL文件中,你可以定义服务的方法、参数和返回类型等。确保按照Onvif规范来定义你的服务接口。 3. 生成代码:使用gSOAP提供的工具来生成C/C++代码。你需要使用命令行工具 `soapcpp2` 并提供IDL文件作为输入。执行命令后,gSOAP将生成相应的服务端和客户端代码文件。 4. 实现服务逻辑:根据生成的代码,你需要实现Onvif服务的具体逻辑。这包括处理接收到的请求、执行相应的操作并构建响应。 5. 编译和构建:编译你的服务端代码,并链接所需的库文件。确保按照gSOAP文档提供的指导进行编译和构建步骤。 6. 运行服务端:运行生成的服务端程序,并确保它能够监听和处理来自客户端的请求。 请注意,这只是一个概述性的步骤,具体的实施可能因个人需求和环境而异。在实际开发中,你还需要了解Onvif协议规范和gSOAP工具的详细用法,并根据实际情况进行适当的配置和定制。 希望这些信息对你有所帮助!如果你有进一步的问题,请随时提问。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值