linux下纯c简单的http post请求 客户端模型=剖析

linux下纯c简单的http post请求 客户端模型=剖析

ID:10334100

大小:41.04 KB

页数:13页

时间:2018-07-06

linux下纯c简单的http post请求 客户端模型=剖析_第1页
linux下纯c简单的http post请求 客户端模型=剖析_第2页
linux下纯c简单的http post请求 客户端模型=剖析_第3页
linux下纯c简单的http post请求 客户端模型=剖析_第4页
linux下纯c简单的http post请求 客户端模型=剖析_第5页
资源描述:

《linux下纯c简单的http post请求 客户端模型=剖析》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、linux下纯C简单的HTTP POST请求 客户端模型交代一下故事背景,国内某保险公司,最近上ILOG规则引擎项目,题外话,对于保险里面的车险核保,真的是相当合适.据说,目前规则引擎最成功的就是ILOG了,我稍微看了一下他们的规则描述语言,感觉好傻啊,用中文描述,我觉得这东西要是可以用导图的那种方式,很发散的方式去处理一定很完美!回到正题上,因为公司的核心业务系统是使用pro*c编写的服务运行于IBMAIX上面,并且通过中间件与前端通讯,怎么与java的ILOG规则引擎通讯呢?刚开始想着通过gSoap来实现c对webservice的调用,但最后因为安装这

2、个包肯定得通过系统管理员,相当麻烦,而且从来没有用过,不知道是否好用,所以ILOG那边增加一个DTO转换层,即将我们发送过去的xml转换成webservices调用,并将返回结果也转换成XML;简单的说就是核心后台通过HTTPPOST打包xml发送请求,并且规则引擎那边也返回xml来实现!晕,走题有点严重!其实无非要实现有两点,·TCP客户端的模型·HTTPPOST协议先来看看我的TCP模型的实现#ifndef_TUOBAO_TCP_CLIENT_#define_TUOBAO_TCP_CLIENT_#include#includ

3、etypedefstruct_tuobao_tcpclient{intsocket;intremote_port;    charremote_ip[16]; structsockaddr_in_addr;intconnected;      }tuobao_tcpclient;inttuobao_tcpclient_create(tuobao_tcpclient*,constchar*host,intport);inttuobao_tcpclient_conn(tuobao_tcpclient*);inttuobao_tcpc

4、lient_recv(tuobao_tcpclient*,char**lpbuff,intsize);inttuobao_tcpclient_send(tuobao_tcpclient*,char*buff,intsize);inttuobao_tcpclient_close(tuobao_tcpclient*);#endif上面的代码应该也不用说太多,光看这个这些函数的命名也差不多知道嘛意思了定义一个结构体,有远程IP及端口,连接状态(注:连接状态是为了保持长连接用的,但事实上post请求的时候,根本就没有保持,所以,基本上没用)然后是五个tcp函数tu

5、obao_tcpclient_create:根据服务器IP或者域名,以及端口填充tcpclient结构,主要是申请个socket及填一下sockaddr_intuobao_tcpclient_conn:连接到远程端口,并修改tcpclient的连接状态tuobao_tcpclient_recv:接收远程指定字节数的数据,并分配空间到lpBuf,如果size为0,就阻塞直到连接关闭tuobao_tcpclient_send:发送buf,size为buf长度tuobao_tcpclient_close:关闭socket并且设置连接状态好了,直接贴代码算了tuo

6、bao_tcpclient.c#include#include#include#include#include"tuobao_tcpclient.h"#defineBUFFER_SIZE1024inttuobao_tcpclient_create(tuobao_tcpclient*pclient,constchar*host,intport){structhostent*he;if(pclient==NULL)return-1;   memset(pclient,0,size

7、of(tuobao_tcpclient));if((he=gethostbyname(host))==NULL){return-2;   }   pclient->remote_port=port;   strcpy(pclient->remote_ip,inet_ntoa(*((structin_addr*)he->h_addr)));   pclient->_addr.sin_family=AF_INET;   pclient->_addr.sin_port=htons(pclient->remote_port);   pclient->_addr.s

8、in_addr=*((structin_addr*)he->h_a

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。