简介
原先是直接使用的Socket来进行网络编程,但遇到高并发我就难以招架了,与是在网上找了一下,发现了开源的gSoap跨平台库,于是就开始尝试使用起来。
官方主页:https://www.genivia.com/products.html
说明文档:https://www.genivia.com/doc/soapdoc2.html
源码下载:https://sourceforge.net/projects/gsoap2/
由于现在所要做的程序只需要短连接,所以就只用到了gSoap所支持的RESTful功能。
本文只讲述在Windows环境下的编程,linux下经测试流程是一样的。
开发步骤
创建Webservice相关声明头文件
该文件需要按特定格式书写,并且注释有特定的意义,详细可看文档。我说创建的最简化声明文件“Webservice.h”文件如下,名字可随意,不影响项目。
//gsoap ns service name: GameWebservice
//gsoap ns service location: http://localhost
//gsoap ns service namespace: urn:GameWebservice
int ns__test(void*);
“ns_test”函数是SOAP远程调用函数,因为使用的是RESTful,所以不用关心,但必须声明一个。
使用“soapcpp2”创建项目源文件
“soapcpp2.exe”在源码目录下“gsoap/bin/win32”目录中,linux下的则需要自己重新编译,文档中也有说明。
使用如下命令创建。
soapcpp2.exe -0 -S -L <