用 C 实现 WebService

http://tech.ddvip.com   2007年03月17日    社区交流

本文详细介绍用 C 实现 WebService

shell>make
shell>./addserver 8888

  如果终端打印出“Socket connection successful: master socket = 3”,那么你的 server 已经在前台 run 起来了,应该是值得高兴的!打开IE,键入http://localhost:8888,显示XML,服务已...〕Socket connection successful: slave socket = 4”,表示服务接收到了一次soap的连接。

  5、让我们再来写个客户端(这个只是将soap的客户端函数封装一下,具体的调用参见下面的addtest.c),创建文件addclient.c,内容如下:

#include "addStub.h"
#include "add.nsmap"
/**
* 传入参数:server:server的地址
* num1,num2:需要相加的数
* 传出参数:sum:num1和num2相加的结果
* 返回值:0为成功,其他为失败
*/
int add( const char* server, int num1, int num2, int *sum )
{
  struct soap add_soap;
  int result = 0;
  soap_init(&add_soap);
  soap_set_namespaces(&add_soap, add_namespaces);
  
  // 该函数是客户端调用的主要函数,后面几个参数和add.h中声明的一样,前面多了3个参数,
  // 函数名是接口函数名ns__add前面加上soap_call_
  soap_call_ns__add( &add_soap, server, "", num1, num2, sum );
  if(add_soap.error)
  {
    printf("soap error:%d,%s,%s ",
        add_soap.error,
        *soap_faultcode(&add_soap),
        *soap_faultstring(&add_soap) );
    result = add_soap.error;
  }
  soap_end(&add_soap);
  soap_done(&add_soap);
  return result;
}

  6、我们最终写一个可以运行的客户端调用程序,创建文件addtest.c,内容如下:

作者:求是赤子    责编:豆豆技术应用

正在加载评论...