📄 udpclient.c
字号:
/*udpclient.cSOAP-over-UDP demo client--------------------------------------------------------------------------------gSOAP XML Web services toolsCopyright (C) 2001-2004, Robert van Engelen, Genivia, Inc. All Rights Reserved.This software is released under one of the following two licenses:GPL or Genivia's license for commercial use.--------------------------------------------------------------------------------GPL license.This program is free software; you can redistribute it and/or modify it underthe terms of the GNU General Public License as published by the Free SoftwareFoundation; either version 2 of the License, or (at your option) any laterversion.This program is distributed in the hope that it will be useful, but WITHOUT ANYWARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR APARTICULAR PURPOSE. See the GNU General Public License for more details.You should have received a copy of the GNU General Public License along withthis program; if not, write to the Free Software Foundation, Inc., 59 TemplePlace, Suite 330, Boston, MA 02111-1307 USAAuthor contact information:engelen@genivia.com / engelen@acm.org--------------------------------------------------------------------------------A commercial use license is available from Genivia, Inc., contact@genivia.com--------------------------------------------------------------------------------*/#include "soapH.h"#include "udp.nsmap"int main(int argc, char **argv){ struct soap soap; struct SOAP_ENV__Header header; struct wsa__EndpointReferenceType replyTo; char *res; char *mid1 = "id1"; char *mid2 = "id2"; if (argc > 1) mid1 = argv[1]; if (argc > 2) mid2 = argv[2]; soap_init(&soap); soap.send_timeout = 1; soap.recv_timeout = 1; /* To compress the request message (compile with -DWITH_GZIP): soap_set_omode(&soap, SOAP_ENC_ZLIB); */ /* To transmit DIME attachments: soap_set_dime(&soap); soap_set_dime_attachment(&soap, "abc", 3, "cid:abc", "text/xml", 0, NULL); */ /* To transmit MIME attachments: soap_set_mime(&soap, NULL, NULL); soap_set_mime_attachment(&soap, "abc", 3, SOAP_MIME_7BIT, "text/xml", "cid:abc", NULL, NULL); */ /* Prepare SOAP Header */ soap_default_SOAP_ENV__Header(&soap, &header); soap.header = &header; soap_default_wsa__EndpointReferenceType(&soap, &replyTo); replyTo.Address = "http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous"; /* Set WS-Addressing elements for request-response unicast */ header.wsa__MessageID = mid1; header.wsa__To = "http://genivia.com/udp/server"; header.wsa__Action = "http://genivia.com/udp/echoString"; header.wsa__ReplyTo = &replyTo; /* Make request-response call */ if (soap_call_ns__echoString(&soap, NULL, NULL, "hello world!", &res)) { if (soap.error == SOAP_EOF && soap.errnum == 0) printf("Timeout: message probably already delivered\n"); else soap_print_fault(&soap, stderr); } else printf("UDP server response: %s\n", res); /* Reset the SOAP Header */ soap_default_SOAP_ENV__Header(&soap, &header); soap.header = &header; /* Set WS-Addressing elements for one-way unicast */ header.wsa__MessageID = mid2; header.wsa__To = "http://genivia.com/udp/server"; header.wsa__Action = "http://genivia.com/udp/sendString"; /* Send one-way message */ if (soap_send_ns__sendString(&soap, NULL, NULL, "hello world!")) soap_print_fault(&soap, stderr); soap_end(&soap); soap_done(&soap); return 0;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -