gsoap环境搭建
来源:互联网 发布:js登录清除cookie 编辑:程序博客网 时间:2024/06/11 22:53
1 gsoap客户端
1.1 搭建客户端环境
现在客户端得到了一个.h的文件。至此,客户端现在共有三个文件,stdsoap2.c、stdsoap2.h、calc.h
执行soapcpp2 -c -C calc.h
生成soapC.c、soapH.h、soapClient.c、soapStub.h、calc.nsmap等文件。
下面解释一下各个文件的作用:
stdsoap2.c、stdsoap2.h:是最低层的文件,跟什么*.h没有关系,编译客户端和服务器都需要用到的
soapC.c、soapH.h:是根据*.h生成的,客户端和服务端公用的部分
soapClient.c:是根据*.h生成的,客户端特有的部分
soapStub.h:是根据*.h生成的,包含客户端和服务端的结构体及函数声明
calc.nsmap:是SOAP的命名空间,在自己写的客户端和服务端的程序里都需要添加
soapH.h中已经包括了soapStub.h,所以只需要在自己的程序里包含该头文件即可
到此,应该可以明白了,编译*.h文件生成客户端的环境,接下来就是自己实现客户端程序。
1.2 编写客户端程序
客户端程序中,首先,需要包含calc.nsmap、和soapH.h。
然后,就可以调用soapStub.h声明的函数,跟调用本地的函数没有什么区别。
重新敲写例程中的代码
soap_destroy(&soap); // Clean up deserialized class instances (note: this function will be renamed with option -n)
soap_end(&soap); // Clean up deserialized data (except class instances)and temporary data,并且会关闭slave socket
soap_done(&soap); // Reset and detach context: close master/slave sockets and remove callbacks
1.3 编译客户端程序
gcc -o calc_client calc_client.c stdsoap2.c soapC.c soapClient.c
生成calc_client可执行文件
1.4 运行
./calcclient add 1 2
出现错误:
SOAP 1.1 fault: SOAP-ENV:Client [no subcode]
"Connection refused"
Detail: connect failed in tcp_connect()
错误出现的原因,是服务端没有指定端口。
2 gsoap服务端
2.1 搭建服务端环境
执行soapcpp2 -c -S calc.h
生成soapC.c、soapH.h、soapServer.c、soapStub.h、calc.nsmap等文件。
2.2 编写服务端程序
vi calc_server.c
首先,需要包含calc.nsmap、和soapH.h。
然后,重新敲写例程中的代码
soap_serve(&soap); // call the service operation dispatcher to handle request
soap bind( struct soap *soap, char *host, int port,int backlog)
//Returns master socket (backlog = max. queue size for requests).
//When host==NULL: host is the machine on which the service runs
soap_accept( struct soap *soap) //Returns slave socket,阻塞
2.3 编译服务端程序
gcc -o calc_server calc_server.c stdsoap2.c soapC.c soapServer.c
这样直接报错calc_server.c:(.text+0x296): undefined reference to `pow'
原因是pow这个库函数没有被定义
所以,应该加上-lm,即gcc -o calc_server calc_server.c stdsoap2.c soapC.c soapServer.c -lm
生成calc_server可执行文件
2.4 运行
./calc_server 8080
1.1 搭建客户端环境
现在客户端得到了一个.h的文件。至此,客户端现在共有三个文件,stdsoap2.c、stdsoap2.h、calc.h
执行soapcpp2 -c -C calc.h
生成soapC.c、soapH.h、soapClient.c、soapStub.h、calc.nsmap等文件。
下面解释一下各个文件的作用:
stdsoap2.c、stdsoap2.h:是最低层的文件,跟什么*.h没有关系,编译客户端和服务器都需要用到的
soapC.c、soapH.h:是根据*.h生成的,客户端和服务端公用的部分
soapClient.c:是根据*.h生成的,客户端特有的部分
soapStub.h:是根据*.h生成的,包含客户端和服务端的结构体及函数声明
calc.nsmap:是SOAP的命名空间,在自己写的客户端和服务端的程序里都需要添加
soapH.h中已经包括了soapStub.h,所以只需要在自己的程序里包含该头文件即可
到此,应该可以明白了,编译*.h文件生成客户端的环境,接下来就是自己实现客户端程序。
1.2 编写客户端程序
客户端程序中,首先,需要包含calc.nsmap、和soapH.h。
然后,就可以调用soapStub.h声明的函数,跟调用本地的函数没有什么区别。
重新敲写例程中的代码
soap_destroy(&soap); // Clean up deserialized class instances (note: this function will be renamed with option -n)
soap_end(&soap); // Clean up deserialized data (except class instances)and temporary data,并且会关闭slave socket
soap_done(&soap); // Reset and detach context: close master/slave sockets and remove callbacks
1.3 编译客户端程序
gcc -o calc_client calc_client.c stdsoap2.c soapC.c soapClient.c
生成calc_client可执行文件
1.4 运行
./calcclient add 1 2
出现错误:
SOAP 1.1 fault: SOAP-ENV:Client [no subcode]
"Connection refused"
Detail: connect failed in tcp_connect()
错误出现的原因,是服务端没有指定端口。
2 gsoap服务端
2.1 搭建服务端环境
执行soapcpp2 -c -S calc.h
生成soapC.c、soapH.h、soapServer.c、soapStub.h、calc.nsmap等文件。
2.2 编写服务端程序
vi calc_server.c
首先,需要包含calc.nsmap、和soapH.h。
然后,重新敲写例程中的代码
soap_serve(&soap); // call the service operation dispatcher to handle request
soap bind( struct soap *soap, char *host, int port,int backlog)
//Returns master socket (backlog = max. queue size for requests).
//When host==NULL: host is the machine on which the service runs
soap_accept( struct soap *soap) //Returns slave socket,阻塞
2.3 编译服务端程序
gcc -o calc_server calc_server.c stdsoap2.c soapC.c soapServer.c
这样直接报错calc_server.c:(.text+0x296): undefined reference to `pow'
原因是pow这个库函数没有被定义
所以,应该加上-lm,即gcc -o calc_server calc_server.c stdsoap2.c soapC.c soapServer.c -lm
生成calc_server可执行文件
2.4 运行
./calc_server 8080
0 0
- gSoap 编译环境搭建
- gsoap环境搭建
- linux下搭建gsoap环境
- gsoap搭建
- gsoap的下载、安装及开发环境的搭建
- 嵌入式linux系统下gsoap环境搭建和移植
- gSoap搭建WebService
- gsoap搭建WebService服务
- gsoap搭建webservice
- gsoap搭建webservice-client
- gsoap搭建WebService服务
- gsoap搭建WebService服务
- gsoap搭建WebService服务
- gsoap C++工程搭建
- Linux下C++ gsoap服务器的搭建
- gsoap搭建WebService服务和客户端
- Apache2.2 + FastCGI + GSoap 搭建 WebService
- gsoap搭建WebService服务和客户端例子
- 新的一周
- [LeetCode] Remove Duplicates from Sorted Linked List 从排序链表中去掉重复值
- Java中由substring方法引发的内存泄漏
- 查看表空间使用的两条常用SQL
- POJ 1503 解题报告
- gsoap环境搭建
- 启动eclipse 报错an error has occurred.see the log file
- python 模拟登录 中国科大 教务处系统
- DRAM内存原理(一)内存基础
- 前端入门(一)(注意文档类型声明)
- MATLAB Linear Algebra 读书笔记
- 使用SOAP访问Web服务
- 清除并发请求或者管理器数据程序
- 第13章 视图