GSoap
傲然君
这个作者很懒,什么都没留下…
展开
-
Apache2.2 + FastCGI + GSoap 搭建 WebService
前言 因工作需要,尝试将CS服务程序部署于Apache,尽管最后没有派上用场,还是抽空记录,也未尝是一次学习经历。 其实最先采用的是CGI,但是测试发现:每收到一个CGI请求,Apache都会启动一个新的Web Service进程来响应请求,并在请求处理完毕后,自动杀死进程,等价来说,针对每一个请求,都需要重新启动exe文件。 在CGI不符合需求的情况下,顺尝试采用FastCGI。FastCG原创 2017-01-02 19:22:58 · 981 阅读 · 0 评论 -
GSoap工作原理简析
前言 因为工作原因,接触GSoap已有大半年时间,春节闲来无事,简单写一下半年来对GSoap的理解。服务端int main() {#ifdef WITH_OPENSSL//1、初始化OpenSSL(系统会自动初始化SSL,故可跳过此函数)//函数会调用SSL_library_init()、OpenSSL_add_all_algorithms()、SSL_load_error_strings(原创 2017-01-24 10:37:12 · 4100 阅读 · 0 评论 -
OpenSSL密钥/证书制作
OpenSSL源码编译 1.1. 环境 WIN7 64bit, vs2013。1.2. 编译 1)下载OpenSSL源码,解压至C盘根目录; 2)安装ActivePerl; 3)cmd.exe,进入openssl源码目录,执行命令“perl Configure VC-WIN32”; 4)执行命令“ms\do_ms”; 5)切换至目录“C:\Program Files\Microsof原创 2017-01-25 11:15:15 · 897 阅读 · 0 评论 -
GSoap启用Zlib压缩
若想使用Zlib进行deflate/gzip压缩:1)首先从http://www.zlib.org下载Zlib源码,并编译生成相关库文件; 2)将Zlib头文件、Zlib库添加至工程; 3)gSOAP支持deflate和gzip两种压缩格式,使用预编译命令(WITH_GZIP或WITH_ZLIB,代表启用gzip或deflate压缩格式)编译stdsoap2.cpp/stdsoap2.c以及所有原创 2017-11-18 10:56:43 · 644 阅读 · 0 评论 -
GSoap启用gzip压缩源码解析
一、相关结构typedef struct z_stream_s { z_const Bytef *next_in; /* 待压缩数据 */ uInt avail_in; /* 待压缩数据大小 */ uLong total_in; /* 到目前为止,所有压缩过的数据的原始大小 */ Bytef *next原创 2017-11-18 11:46:49 · 437 阅读 · 0 评论 -
基于GSoap/protobuf的服务性能优化
一、业务场景前段时间,在做CS服务化的事情,其中有一个业务场景是这样的: CS在启动时,需要一次性向服务端请求各种地理图数据,该部分数据来源于将近200张表。起初为了方便,所有表使用同一个protobuf结构,且所有字段类型统一定义为bytes。 在120G内存服务器上的测试结果: 1、时间上:相比直接从数据库加载数据,服务化后单个CS的启动时间(将近3分钟)要超出一倍。若同时启动10个CS,原创 2017-11-19 14:12:21 · 1305 阅读 · 0 评论 -
http如何实现跨域访问
当两个域具有相同的协议(如http), 相同的端口(如80),相同的host(如www.google.com),则认为它们是相同的域(协议,域名,端口都必须相同)。出于安全考虑,浏览器允许跨域写(即:上行,发送请求),而不允许跨域读(即:下行,接受响应)。跨域访问失败时,实际上浏览器发送请求成功,浏览器也接收到了响应,但是它会限制xmlhttprequest接受响应并在js控制台报错。解决方法:通过原创 2017-12-21 17:20:31 · 11811 阅读 · 0 评论 -
BASE64与MTOM
BASE64编码的原理:1、将源数据按6位二进制划分。这样,每3个8位字节将编码为4个6位字节(3×8 → 4×6)。 2、若源数据的字节数不是3的倍数,则其位数就不是6的倍数,则源数据无法精确地按6位进行划分,即划分后存在末尾不足6位的情况。 此时:在源数据后面添加1个或2个零值字节,以使其字节数是3的倍数。编码时,新增1个或2个零字节中的2位或4位附加到源数据参与编码,剩下的6位原创 2018-01-05 10:04:17 · 934 阅读 · 0 评论