int result = -1;
char* server="http://localhost:8888";
int num1 = 0;
int num2 = 0;
int sum = 0;
if( argc < 3 )
{
printf("usage: %s num1 num2 \n", argv[0]);
exit(0);
}
num1 = atoi(argv[1]);
num2 = atoi(argv[2]);
result = add(server, num1, num2, &sum);
if (result != 0)
{
printf("soap err,errcode = %d\n", result);
}
else
{
printf("%d %d=%d\n", num1, num2, sum );
}
return 0;
}
7.让我们的client端和server端通讯
shell>make client
shell>./addtest 7 8
当然,您的server应该还在run,这样得到输出结果7 8=15,好了,您成功完成了您的第一个C写的WebService,恭喜。
三.图示说明
四.要注意的问题
1. add.h文档前面的几句注释不能删除,为soapcpp2需要识别的标志
2. 接口函数的返回值只能是int,是soap调用的结果,一般通过soap.error来判断soap的连接情况,这个返回值没有用到。
3. 接口函数的最后一个参数为传出参数,假如需要传出多个参数,需要自己定义一个结构将返回项封装。
4. 在.h文档中不能include别的.h文档,可能不能生效,需要用到某些结构的时候需要在该文档中直接声明。
5. 假如客户端的调用无需返回值,那么最后一个参数
五.参考文档
1.gsoap主页
http://gsoap2.sourceforge.net
2.跟我一起写Makefile
http://dev.csdn.net/develop/article/20/20025.shtm
3.Web Services: A Technical Introduction(机械工业出版社)
六.备注
192.168.18.233和192.168.18.234的/usr/local/gsoap目录下的3个需要的文档及一个env目录,不是编译安装的,是在别的地方编译好了直接copy过来的(实际编译结果中更有wsdl2h工具及其他一些文档,但是我们的实际研发中只是用到了这3个文档及env目录)。因为时间仓促,本人还没有时间研究编译的问题,相关细节能够查看参考文档1。
在192.168.18.233的/home/weiqiong/soap/sample目录下及192.168.18.234的/tmp/soap/sample目录下有本文讲到的加法运算的例子。
全文结束
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!



