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方法的方法名或者参数格式。

This entry was posted in 程序设计 and tagged . Bookmark the permalink.

7 Responses to gsoap使用点滴

  1. snail says:

    D大更新的好勤快阿!都来不及细细看了的说~~~

    • davelv says:

      回复 evilhacker:哪能跟你似的,一个月更新一两次。[e08]太懒了

      • snail says:

        回复 davelv:夷,D大在线阿,呵呵
        。。。我享受不了fedora,折腾了2天都没弄好,做了逃兵重回ubuntu的怀抱了….[e06]

        • davelv says:

          回复 evilhacker:刚在写日志。52同学好凄惨阿,我当初第一次用fedora的时候一周重装了5次系统,大半还是在控制台下用的,因为装显卡驱动进不去xwindow… 52要加油的,我在fedora13下等你。

          • snail says:

            回复 davelv:是啊!我一晚上强行关机不知关了多少次…..
            等明年这时候我闲下来的时候再折腾吧…..
            明年咱fedora14 见~~~[e04]

  2. 大D says:

    呃 linux的不同发行版 我只用过Ubuntu。。。[e08]

  3. seawave1984 says:

    头像是你吗,很漂亮啊,害我不能专心看你的日志

回复 davelv 取消回复

您的电子邮箱地址不会被公开。 必填项已用*标注