锐英源软件
第一信赖

精通

英语

开源

擅长

开发

培训

胸怀四海 

第一信赖

当前位置:锐英源 / 开源技术 / GSOAP服务器返回字符串
GSOAP
GSOAP开发SOAP服务器端和客户端总结
服务方向
人工智能数据处理
人工智能培训
kaldi数据准备
小语种语音识别
语音识别标注
语音识别系统
语音识别转文字
kaldi开发技术服务
软件开发
运动控制卡上位机
机械加工软件
软件开发培训
Java 安卓移动开发
VC++
C#软件
汇编和破解
驱动开发
联系方式
固话:0371-63888850
手机:138-0381-0136
Q Q:396806883
微信:ryysoft

锐英源精品开源心得,转载请注明出处:锐英源,www.wisestudy.cn,孙老师作品,联系电话13803810136。

GSOAP服务器返回字符串


前几天写了一篇GSOPA的总结文章,这里对一个要点进行说明,关于“GSOAP服务器返回字符串”问题进行说明。


背景


GSOPA可以转换的头文件里的函数,一般最后一个参数是int *类型,比如这样:

int ns_a(int a,char*b,int *ireturn)

函数返回参数是用于服务器端处理,一般返回OK。而ireturn是返回给客户端的。网上很多文章都是按这样的形式进行说明,最后参数是int *,现在我要返回字符串,找网上的代码没有直接参考价值。

如果要返回字符串给客户端,最后一个参数类型改为char**或wchar**就可以,给这样的指针分配空间要用gsoap环境下的分配函数,不能是原生的malloc。

服务器端用模板生成的代码就可以,写好处理函数,分配空间并赋值字符串,就能返回,客户端模板需要修改。


模板修改


用wsdl2java生成的Java模板代码,函数原型是按C++原型转出来的,这时候要改Java代码,把原型改掉,返回类型改成String,最后一个参数去掉。这个方式经过我的验证,函数返回值就是服务器向最后一个参数指定的字符串结果。

用soapcpp2 -i 生成的C++代理客户端代码原型会和服务器端一样,这样的原型也不用改,但是默认模板通过最后参数是获取不到输出结果的,要改代理里的代码才行。

经过我的跟踪发现,其实数据能发给客户端,只是代理类没有处理好代码,经过我的重新修订,能把内部数据暴露出来,让客户端函数也能返回出来。

源代码

上面描述的是思想,真正要实现,改的源代码,还比较多,想要源代码,请联系锐英源,左侧有联系方式。

友情链接
版权所有 Copyright(c)2004-2021 锐英源软件
公司注册号:410105000449586 豫ICP备08007559号 最佳分辨率 1024*768
地址:郑州大学北校区院(文化路97号院)内