镇江英科医疗:gsoap例子

来源:百度文库 编辑:中财网 时间:2024/05/07 12:44:35
#include "soapH.h"
#include "ns.nsmap"const char magicserver[] = "localhost:18081";int main(int argc, char **argv)
{
 struct soap *soap = soap_new();
 double a, b, result; if (argc > 3)
 {
  a = atoi(argv[1]);
  b = atoi(argv[3]);
 }
 else
 {
  return -1;
 } switch(*argv[2])
 {
 case ‘+‘ :
  if (soap_call_ns__add(soap, magicserver, "", a, b, result) == 0)
  {
   printf("%f+%f=%f\n", a, b, result);
  }
  else
  {
   soap_print_fault(soap, stderr);
  }
  break;
 case ‘-‘ :
  if (soap_call_ns__sub(soap, magicserver, "", a, b, result) == 0)
  {
   printf("%f-%f=%f", a, b, result);
  }
  else
  {
   soap_print_fault(soap, stderr);
  }
  break;
 default :
  printf("Please input valid symbol!\n");
  break;
 }
 return 0;
} #include "soapH.h"
#include "ns.nsmap"int main(int argc, char **argv)
{
 struct soap soap;
 int m, s;
 
 soap_init(&soap);
 
 if (argc < 3)
 {
  soap_serve(&soap);
  soap_destroy(&soap);
  soap_end(&soap);
 }
 else
 {
  m = soap_bind(&soap, argv[1], atoi(argv[2]), 100);
  if (m < 0)
  {
   exit(-1);
  }
  fprintf(stderr, "Socket connection successful %d\n", m);
  for (int i = 1; ; i++)
  {
   s = soap_accept(&soap);
   if (s < 0)
   {
    exit(-1);
   }
   fprintf(stderr, "%d: accepted %d IP=%d.%d.%d.%d ... ", i, s, (int)(soap.ip>>24)&0xFF, (int)(soap.ip>>16)&0xFF, (int)(soap.ip>>8)&0xFF, (int)soap.ip&0xFF);
   soap_serve(&soap);
   fprintf(stderr, "served\n");
   soap_destroy(&soap);
   soap_end(&soap);
  }
 }
 return 0;
}int ns__add(struct soap *soap, double a, double b, double &result)
{
 result = a + b;
 return SOAP_OK;
}int ns__sub(struct soap *soap, double a, double b, double &result)
{
 result = a - b;
 return SOAP_OK;
}