Linux kernel 2.4.2 + gSOAP 2.6 安裝至 /usr/local/gsoap。
//gsoap ns service name: add //gsoap ns service namespace: https://mail.263.net/add.wsdl //gsoap ns service location: https://mail.263.net //gsoap ns service executable: add.cgi //gsoap ns service encoding: encoded //gsoap ns schema namespace: urn:add int ns__add(int num1, int num2, int *sum);
soapcpp2):make 自動生成 addH.h, addC.c, addServer.c, addClient.c, stdsoap2.c, add.wsdl 等文件。
#include "addH.h"
#include "add.nsmap"
int ns__add(struct soap *soap, int num1, int num2, int *sum) {
*sum = num1 + num2;
return SOAP_OK;
}
int main(int argc, char **argv) {
struct soap soap;
soap_init(&soap);
soap_set_namespaces(&soap, add_namespaces);
int port = atoi(argv[1]);
int master = soap_bind(&soap, NULL, port, 100);
for (;;) {
int slave = soap_accept(&soap);
add_serve(&soap); // 處理請求
soap_end(&soap);
}
return 0;
}
./addserver 8888 → 瀏覽器訪問 https://localhost:8888 查看 WSDL 驗證服務運行。
struct soap* 參數soap_bind 綁定端口,soap_accept 接受連接,add_serve 分發調用