landuochong 发表于 2011-12-21 08:44

使用gSOAP开发实例(2) 股票信息服务端程序

<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: 宋体;">转载:http://blog.csdn.net/yui/archive/2010/07/19/5747433.aspx<br></span></span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New';">电信</span><span style="font-family: &quot;Courier New&quot;;" lang="EN-US">provisioning</span><span style="font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New';">系统中,常常需要与远程服务器实时交换一些数据,以完成用户的请求。由于简单对象访问协议(</span><span style="font-family: &quot;Courier New&quot;;" lang="EN-US">Simple Object Access Protocol, SOAP</span><span style="font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New';">)的流行,许多涉及到第三方的应用,我们一般都比较乐意使用</span><span style="font-family: &quot;Courier New&quot;;" lang="EN-US">SOAP</span><span style="font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New';">来开发。不过,由于可能涉及到公司的机密,本系列教程的开发实例尽量采用在网上已经公开的</span><span style="font-family: &quot;Courier New&quot;;" lang="EN-US">Web Service</span><span style="font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New';">资源。</span><span style="font-family: &quot;Courier New&quot;;" lang="EN-US"></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;;" lang="EN-US"><span style="font-size: small;">&nbsp;</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Courier New';">上文已经交待了</span><span style="font-family: &quot;Courier New&quot;;" lang="EN-US">gSOAP</span><span style="font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Courier New';">在</span><span style="font-family: &quot;Courier New&quot;;" lang="EN-US">Linux</span><span style="font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Courier New';">环境下的编译方法和客户端的实例程序,本文继续讲解其服务端程序的开发。由于不可能获得真正的数据库内容,我们设定的目标是,所有返回的内容都是客户端传入的股票代码。</span><span style="font-family: &quot;Courier New&quot;;" lang="EN-US"></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;;" lang="EN-US"><span style="font-size: small;">&nbsp;</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New';">首先,在</span><span style="font-family: &quot;Courier New&quot;;" lang="EN-US">gsoap-2.7/gsoap/wsdl/</span><span style="font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New';">下创建一个</span><span style="font-family: &quot;Courier New&quot;;" lang="EN-US">stock_server</span><span style="font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New';">目录</span><span style="font-family: &quot;Courier New&quot;;" lang="EN-US"></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;;" lang="EN-US"><span style="font-size: small;">-bash-3.2$ <strong style="mso-bidi-font-weight: normal;"><span style="color: blue;">mkdir -p stock_server</span></strong></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;;" lang="EN-US"><span style="font-size: small;">&nbsp;</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Courier New'; mso-bidi-font-family: 'Courier New';">改变当前路径为</span><span style="font-family: &quot;Courier New&quot;;" lang="EN-US">stock_server</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;;" lang="EN-US"><span style="font-size: small;">-bash-3.2$ <strong style="mso-bidi-font-weight: normal;"><span style="color: blue;">cd stock_server</span></strong></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;;" lang="EN-US"><span style="font-size: small;">&nbsp;</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Courier New';">仍然使用</span><span style="font-family: &quot;Courier New&quot;;" lang="EN-US">wsdl2h</span><span style="font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Courier New';">生成基于纯</span><span style="font-family: &quot;Courier New&quot;;" lang="EN-US">C</span><span style="font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Courier New';">代码的</span><span style="font-family: &quot;Courier New&quot;;" lang="EN-US">stock.h</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;;" lang="EN-US"><span style="font-size: small;">-bash-3.2$ <strong style="mso-bidi-font-weight: normal;"><span style="color: blue;">../wsdl2h -c -o stock.h http://webservice.webxml.com.cn/WebServices/ChinaStockWebService.asmx?wsdl</span></strong></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><strong style="mso-bidi-font-weight: normal;"><span style="font-family: &quot;Courier New&quot;; color: blue;" lang="EN-US"><span style="font-size: small;">&nbsp;</span></span></strong></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-size: small;"><span style="font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Courier New';">然后,生成服务端存根程序,并且不生成</span><span style="font-family: &quot;Courier New&quot;;" lang="EN-US">xml</span><span style="font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Courier New';">文件和</span><span style="font-family: &quot;Courier New&quot;;" lang="EN-US">soapServerLib.c</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;;" lang="EN-US"><span style="font-size: small;">-bash-3.2$ <strong style="mso-bidi-font-weight: normal;"><span style="color: blue;">../../bin/linux386/soapcpp2 -S -L -x stock.h</span></strong></span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;;" lang="EN-US"><span style="font-size: small;">&nbsp;</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US"><span style="font-size: small;">**<span style="mso-spacerun: yes;">&nbsp; </span>The gSOAP code generator for C and C++, soapcpp2 release 2.7.17</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US"><span style="font-size: small;">**<span style="mso-spacerun: yes;">&nbsp; </span>Copyright (C) 2000-2010, Robert van Engelen, Genivia Inc.</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US"><span style="font-size: small;">**<span style="mso-spacerun: yes;">&nbsp; </span>All Rights Reserved. This product is provided "as is", without any warranty.</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US"><span style="font-size: small;">**<span style="mso-spacerun: yes;">&nbsp; </span>The soapcpp2 tool is released under one of the following three licenses:</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US"><span style="font-size: small;">**<span style="mso-spacerun: yes;">&nbsp; </span>GPL, the gSOAP public license, or the commercial license by Genivia Inc.</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US"><span style="font-size: small;">&nbsp;</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US"><span style="font-size: small;">Saving soapStub.h annotated copy of the input declarations</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US"><span style="font-size: small;">Saving soapH.h interface declarations</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US"><span style="font-size: small;">Saving soapC.c XML serializers</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US"><span style="font-size: small;">Saving soapServer.c server request dispatcher</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US"><span style="font-size: small;">Using ns2 service name: ChinaStockWebServiceSoap</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US"><span style="font-size: small;">Using ns2 service style: document</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US"><span style="font-size: small;">Using ns2 service encoding: literal</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US"><span style="font-size: small;">Using ns2 service location: http://webservice.webxml.com.cn/WebServices/ChinaStockWebService.asmx</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US"><span style="font-size: small;">Using ns2 schema namespace: http://WebXml.com.cn/ChinaStockWebServiceSoap</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US"><span style="font-size: small;">Saving ChinaStockWebServiceSoap.nsmap namespace mapping table</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US"><span style="font-size: small;">Using ns3 service name: ChinaStockWebServiceSoap12</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US"><span style="font-size: small;">Using ns3 service style: document</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US"><span style="font-size: small;">Using ns3 service encoding: literal</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US"><span style="font-size: small;">Using ns3 service location: http://webservice.webxml.com.cn/WebServices/ChinaStockWebService.asmx</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US"><span style="font-size: small;">Using ns3 schema namespace: http://WebXml.com.cn/ChinaStockWebServiceSoap12</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US"><span style="font-size: small;">Saving ChinaStockWebServiceSoap12.nsmap namespace mapping table</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US"><span style="font-size: small;">&nbsp;</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US"><span style="font-size: small;">Compilation successful</span></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;;" lang="EN-US"><span style="font-size: small;">&nbsp;</span></span></p>
<p><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Courier New'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;">服务端的主程序稍微比客户端复杂些,因为还要处理客户端的其他请求,至少要有其函数体,否则编译时会报错。</span></p>

<p><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Courier New'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;"><div class="dp-highlighter"><div class="bar"><div class="tools"><a href="http://blog.csdn.net/yui/archive/2010/07/19/5747433.aspx#">view plain</a><a href="http://blog.csdn.net/yui/archive/2010/07/19/5747433.aspx#">copy to clipboard</a><a href="http://blog.csdn.net/yui/archive/2010/07/19/5747433.aspx#">print</a><a href="http://blog.csdn.net/yui/archive/2010/07/19/5747433.aspx#">?</a></div></div><ol class="dp-cpp" start="1"><li class="alt"><span><span class="preprocessor">#include&nbsp;"soapH.h"</span><span>&nbsp;&nbsp;</span></span></li><li class=""><span><span class="preprocessor">#include&nbsp;"ChinaStockWebServiceSoap12.nsmap"</span><span>&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;</span></li><li class=""><span><span class="datatypes">int</span><span>&nbsp;main(</span><span class="datatypes">int</span><span>&nbsp;argc,&nbsp;</span><span class="datatypes">char</span><span>&nbsp;**argv)&nbsp;{&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(&nbsp;argc&nbsp;!=&nbsp;2&nbsp;)&nbsp;{&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(<span class="string">"Usage:&nbsp;%s&nbsp;port\n"</span><span>,&nbsp;argv);&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(-1);&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="datatypes">int</span><span>&nbsp;port&nbsp;=&nbsp;atol(argv);&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">struct</span><span>&nbsp;soap&nbsp;soap;&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;soap_init(&amp;soap);&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="datatypes">int</span><span>&nbsp;m,&nbsp;s;&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(&nbsp;(m&nbsp;=&nbsp;soap_bind(&amp;soap,&nbsp;NULL,&nbsp;port,&nbsp;100))&nbsp;&lt;&nbsp;0&nbsp;)&nbsp;{&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;soap_print_fault(&amp;soap,&nbsp;stderr);&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">else</span><span>&nbsp;{&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(<span class="string">"Socket&nbsp;connect&nbsp;successfully:&nbsp;master&nbsp;socket&nbsp;=&nbsp;%d\n"</span><span>,&nbsp;m);&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="datatypes">int</span><span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">while</span><span>&nbsp;(&nbsp;1&nbsp;)&nbsp;{&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(&nbsp;(s&nbsp;=&nbsp;soap_accept(&amp;soap))&nbsp;&lt;&nbsp;0&nbsp;)&nbsp;{&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;soap_print_fault(&amp;soap,&nbsp;stderr);&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">break</span><span>;&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(<span class="string">"Connection&nbsp;%d&nbsp;accepted&nbsp;from&nbsp;IP&nbsp;=&nbsp;%d.%d.%d.%d,&nbsp;slave&nbsp;socket&nbsp;=&nbsp;%d\n"</span><span>,&nbsp;++i,&nbsp;(soap.ip&nbsp;&gt;&gt;&nbsp;24)&nbsp;&amp;&nbsp;0xff,&nbsp;(soap.ip&nbsp;&gt;&gt;&nbsp;16)&nbsp;&amp;&nbsp;0xff,&nbsp;(soap.ip&nbsp;&gt;&gt;&nbsp;8)&nbsp;&amp;&nbsp;0xff,&nbsp;soap.ip&nbsp;&amp;&nbsp;0xff,&nbsp;s);&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(&nbsp;soap_serve(&amp;soap)&nbsp;!=&nbsp;SOAP_OK&nbsp;)&nbsp;{&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;soap_print_fault(&amp;soap,&nbsp;stderr);&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">break</span><span>;&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;soap_end(&amp;soap);&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;soap_done(&amp;soap);&nbsp;&nbsp;</span></li><li class=""><span>}&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;</span></li><li class=""><span><span class="datatypes">int</span><span>&nbsp;__ns3__getStockInfoByCode(&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">struct</span><span>&nbsp;soap&nbsp;*soap,&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">struct</span><span>&nbsp;_ns1__getStockInfoByCode&nbsp;*request,&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">struct</span><span>&nbsp;_ns1__getStockInfoByCodeResponse&nbsp;*response)&nbsp;{&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="datatypes">int</span><span>&nbsp;element_counter&nbsp;=&nbsp;25;&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;response-&gt;getStockInfoByCodeResult&nbsp;=&nbsp;(<span class="keyword">struct</span><span>&nbsp;ns1__ArrayOfString&nbsp;*)&nbsp;malloc(</span><span class="keyword">sizeof</span><span>(</span><span class="keyword">struct</span><span>&nbsp;ns1__ArrayOfString));&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;response-&gt;getStockInfoByCodeResult-&gt;__sizestring&nbsp;=&nbsp;element_counter;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;response-&gt;getStockInfoByCodeResult-&gt;string&nbsp;=&nbsp;(<span class="datatypes">char</span><span>&nbsp;**)&nbsp;malloc(</span><span class="keyword">sizeof</span><span>(</span><span class="datatypes">char</span><span>&nbsp;*)&nbsp;*&nbsp;element_counter);&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="datatypes">int</span><span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">for</span><span>&nbsp;(&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;element_counter;&nbsp;i++&nbsp;)&nbsp;{&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response-&gt;getStockInfoByCodeResult-&gt;string&nbsp;=&nbsp;(<span class="datatypes">char</span><span>&nbsp;*)&nbsp;malloc(</span><span class="keyword">sizeof</span><span>(</span><span class="datatypes">char</span><span>)&nbsp;*&nbsp;32);&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strcpy(response-&gt;getStockInfoByCodeResult-&gt;string,&nbsp;request-&gt;theStockCode);&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;SOAP_OK;&nbsp;&nbsp;</span></span></li><li class=""><span>}&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;</span></li><li class=""><span><span class="datatypes">int</span><span>&nbsp;__ns3__getStockImage_USCOREkByteByCode(&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">struct</span><span>&nbsp;soap&nbsp;*soap,&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">struct</span><span>&nbsp;_ns1__getStockImage_USCOREkByteByCode&nbsp;*request,&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">struct</span><span>&nbsp;_ns1__getStockImage_USCOREkByteByCodeResponse&nbsp;*response)&nbsp;{&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;SOAP_OK;&nbsp;&nbsp;</span></span></li><li class="alt"><span>}&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;</span></li><li class="alt"><span><span class="datatypes">int</span><span>&nbsp;__ns3__getStockImage_USCOREkByCode(&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">struct</span><span>&nbsp;soap&nbsp;*soap,&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">struct</span><span>&nbsp;_ns1__getStockImage_USCOREkByCode&nbsp;*request,&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">struct</span><span>&nbsp;_ns1__getStockImage_USCOREkByCodeResponse&nbsp;*response)&nbsp;{&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;SOAP_OK;&nbsp;&nbsp;</span></span></li><li class=""><span>}&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;</span></li><li class=""><span><span class="datatypes">int</span><span>&nbsp;__ns3__getStockImageByteByCode(&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">struct</span><span>&nbsp;soap&nbsp;*soap,&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">struct</span><span>&nbsp;_ns1__getStockImageByteByCode&nbsp;*request,&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">struct</span><span>&nbsp;_ns1__getStockImageByteByCodeResponse&nbsp;*response)&nbsp;{&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;SOAP_OK;&nbsp;&nbsp;</span></span></li><li class="alt"><span>}&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;</span></li><li class="alt"><span><span class="datatypes">int</span><span>&nbsp;__ns3__getStockImageByCode(&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">struct</span><span>&nbsp;soap&nbsp;*soap,&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">struct</span><span>&nbsp;_ns1__getStockImageByCode&nbsp;*request,&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">struct</span><span>&nbsp;_ns1__getStockImageByCodeResponse&nbsp;*response)&nbsp;{&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;SOAP_OK;&nbsp;&nbsp;</span></span></li><li class=""><span>}&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;</span></li><li class=""><span><span class="datatypes">int</span><span>&nbsp;__ns2__getStockInfoByCode(&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">struct</span><span>&nbsp;soap&nbsp;*soap,&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">struct</span><span>&nbsp;_ns1__getStockInfoByCode&nbsp;*request,&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">struct</span><span>&nbsp;_ns1__getStockInfoByCodeResponse&nbsp;*response)&nbsp;{&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="datatypes">int</span><span>&nbsp;element_counter&nbsp;=&nbsp;25;&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;response-&gt;getStockInfoByCodeResult&nbsp;=&nbsp;(<span class="keyword">struct</span><span>&nbsp;ns1__ArrayOfString&nbsp;*)&nbsp;malloc(</span><span class="keyword">sizeof</span><span>(</span><span class="keyword">struct</span><span>&nbsp;ns1__ArrayOfString));&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;response-&gt;getStockInfoByCodeResult-&gt;__sizestring&nbsp;=&nbsp;element_counter;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;response-&gt;getStockInfoByCodeResult-&gt;string&nbsp;=&nbsp;(<span class="datatypes">char</span><span>&nbsp;**)&nbsp;malloc(</span><span class="keyword">sizeof</span><span>(</span><span class="datatypes">char</span><span>&nbsp;*)&nbsp;*&nbsp;element_counter);&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="datatypes">int</span><span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">for</span><span>&nbsp;(&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;element_counter;&nbsp;i++&nbsp;)&nbsp;{&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;response-&gt;getStockInfoByCodeResult-&gt;string&nbsp;=&nbsp;(<span class="datatypes">char</span><span>&nbsp;*)&nbsp;malloc(</span><span class="keyword">sizeof</span><span>(</span><span class="datatypes">char</span><span>)&nbsp;*&nbsp;32);&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;strcpy(response-&gt;getStockInfoByCodeResult-&gt;string,&nbsp;request-&gt;theStockCode);&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;SOAP_OK;&nbsp;&nbsp;</span></span></li><li class=""><span>}&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;</span></li><li class=""><span><span class="datatypes">int</span><span>&nbsp;__ns2__getStockImage_USCOREkByteByCode(&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">struct</span><span>&nbsp;soap&nbsp;*soap,&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">struct</span><span>&nbsp;_ns1__getStockImage_USCOREkByteByCode&nbsp;*request,&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">struct</span><span>&nbsp;_ns1__getStockImage_USCOREkByteByCodeResponse&nbsp;*response)&nbsp;{&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;SOAP_OK;&nbsp;&nbsp;</span></span></li><li class="alt"><span>}&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;</span></li><li class="alt"><span><span class="datatypes">int</span><span>&nbsp;__ns2__getStockImage_USCOREkByCode(&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">struct</span><span>&nbsp;soap&nbsp;*soap,&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">struct</span><span>&nbsp;_ns1__getStockImage_USCOREkByCode&nbsp;*request,&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">struct</span><span>&nbsp;_ns1__getStockImage_USCOREkByCodeResponse&nbsp;*response)&nbsp;{&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;SOAP_OK;&nbsp;&nbsp;</span></span></li><li class=""><span>}&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;</span></li><li class=""><span><span class="datatypes">int</span><span>&nbsp;__ns2__getStockImageByteByCode(&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">struct</span><span>&nbsp;soap&nbsp;*soap,&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">struct</span><span>&nbsp;_ns1__getStockImageByteByCode&nbsp;*request,&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">struct</span><span>&nbsp;_ns1__getStockImageByteByCodeResponse&nbsp;*response)&nbsp;{&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;SOAP_OK;&nbsp;&nbsp;</span></span></li><li class="alt"><span>}&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;</span></li><li class="alt"><span><span class="datatypes">int</span><span>&nbsp;__ns2__getStockImageByCode(&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">struct</span><span>&nbsp;soap&nbsp;*soap,&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">struct</span><span>&nbsp;_ns1__getStockImageByCode&nbsp;*request,&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">struct</span><span>&nbsp;_ns1__getStockImageByCodeResponse&nbsp;*response)&nbsp;{&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;SOAP_OK;&nbsp;&nbsp;</span></span></li><li class=""><span>}&nbsp;&nbsp;</span></li></ol></div> </span></p>

<p><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Courier New'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;">
</span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Courier New';">值得注意的是,如果项目中存在多个</span><span style="font-family: &quot;Courier New&quot;;" lang="EN-US">name space</span><span style="font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Courier New';">,最好把全部</span><span style="font-family: &quot;Courier New&quot;;" lang="EN-US">name space</span><span style="font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Courier New';">的相关方法都进行编码,否则可能出现意想不到的错误:客户端明明是调用</span><span style="font-family: &quot;Courier New&quot;;" lang="EN-US">ns3</span><span style="font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Courier New';">的方法,但是服务端却使用了</span><span style="font-family: &quot;Courier New&quot;;" lang="EN-US">ns2</span><span style="font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Courier New';">的方法来提供服务。这一点我也比较费解,可能与</span><span style="font-family: &quot;Courier New&quot;;" lang="EN-US">wsdl</span><span style="font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Courier New';">本身的写法有关。</span><span style="font-family: &quot;Courier New&quot;;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;;" lang="EN-US">&nbsp;</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Courier New';">上述服务端程序的编译命令是</span><span style="font-family: &quot;Courier New&quot;;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><strong style="mso-bidi-font-weight: normal;"><span style="font-family: &quot;Courier New&quot;; color: blue;" lang="EN-US">gcc -O2 -o stock_server stock_server.c soapC.c soapServer.c ../../stdsoap2.c -I../.. -L../.. -lgsoap</span></strong></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;;" lang="EN-US">&nbsp;</span></p>
<p><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Courier New'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;">同时,要把上文的客户端程序修改一下,支持指定的</span><span style="font-family: &quot;Courier New&quot;; font-size: 12pt; mso-fareast-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;" lang="EN-US">end point</span><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Courier New'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;">,不指定</span><span style="font-family: &quot;Courier New&quot;; font-size: 12pt; mso-fareast-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;" lang="EN-US">end point</span><span style="font-family: 宋体; font-size: 12pt; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Courier New'; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;">再取默认的</span><span style="font-family: &quot;Courier New&quot;; font-size: 12pt; mso-fareast-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;" lang="EN-US">end point</span></p>


<p><span style="font-family: &quot;Courier New&quot;; font-size: 12pt; mso-fareast-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;" lang="EN-US"><div class="dp-highlighter"><div class="bar"><div class="tools"><a href="http://blog.csdn.net/yui/archive/2010/07/19/5747433.aspx#">view plain</a><a href="http://blog.csdn.net/yui/archive/2010/07/19/5747433.aspx#">copy to clipboard</a><a href="http://blog.csdn.net/yui/archive/2010/07/19/5747433.aspx#">print</a><a href="http://blog.csdn.net/yui/archive/2010/07/19/5747433.aspx#">?</a></div></div><ol class="dp-cpp" start="1"><li class="alt"><span><span class="preprocessor">#include&nbsp;"soapH.h"</span><span>&nbsp;&nbsp;</span></span></li><li class=""><span><span class="preprocessor">#include&nbsp;"ChinaStockWebServiceSoap12.nsmap"</span><span>&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;</span></li><li class=""><span><span class="datatypes">int</span><span>&nbsp;main(</span><span class="datatypes">int</span><span>&nbsp;argc,&nbsp;</span><span class="datatypes">char</span><span>&nbsp;**argv)&nbsp;{&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(&nbsp;argc&nbsp;!=&nbsp;2&nbsp;&amp;&amp;&nbsp;argc&nbsp;!=&nbsp;3&nbsp;)&nbsp;{&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(<span class="string">"Usage:&nbsp;%s&nbsp;stock_code&nbsp;\n"</span><span>,&nbsp;argv);&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;exit(-1);&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">struct</span><span>&nbsp;soap&nbsp;soap;&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;soap_init(&amp;soap);&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;soap_set_mode(&amp;soap,&nbsp;SOAP_C_UTFSTRING);&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">struct</span><span>&nbsp;_ns1__getStockInfoByCode&nbsp;request;&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">struct</span><span>&nbsp;_ns1__getStockInfoByCodeResponse&nbsp;response;&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;request.theStockCode&nbsp;=&nbsp;argv;&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="datatypes">char</span><span>&nbsp;*endpoint&nbsp;=&nbsp;NULL;&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(&nbsp;argc&nbsp;==&nbsp;3&nbsp;)&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;endpoint&nbsp;=&nbsp;argv;&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">if</span><span>&nbsp;(&nbsp;soap_call___ns3__getStockInfoByCode(&amp;soap,&nbsp;endpoint,&nbsp;NULL,&nbsp;&amp;request,&nbsp;&amp;response)&nbsp;==&nbsp;SOAP_OK&nbsp;)&nbsp;{&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="datatypes">int</span><span>&nbsp;element_counter&nbsp;=&nbsp;response.getStockInfoByCodeResult-&gt;__sizestring;&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="datatypes">int</span><span>&nbsp;i&nbsp;=&nbsp;0;&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">for</span><span>&nbsp;(&nbsp;i&nbsp;=&nbsp;0;&nbsp;i&nbsp;&lt;&nbsp;element_counter;&nbsp;i++&nbsp;)&nbsp;{&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">switch</span><span>&nbsp;(&nbsp;i&nbsp;)&nbsp;{&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">case</span><span>&nbsp;0&nbsp;&nbsp;:&nbsp;printf(</span><span class="string">"Stock&nbsp;code&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;"</span><span>);&nbsp;</span><span class="keyword">break</span><span>;&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">case</span><span>&nbsp;1&nbsp;&nbsp;:&nbsp;printf(</span><span class="string">"Stock&nbsp;name&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;"</span><span>);&nbsp;</span><span class="keyword">break</span><span>;&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">case</span><span>&nbsp;2&nbsp;&nbsp;:&nbsp;printf(</span><span class="string">"Timestamp&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;"</span><span>);&nbsp;</span><span class="keyword">break</span><span>;&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">case</span><span>&nbsp;3&nbsp;&nbsp;:&nbsp;printf(</span><span class="string">"Latest&nbsp;price&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;"</span><span>);&nbsp;</span><span class="keyword">break</span><span>;&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">case</span><span>&nbsp;4&nbsp;&nbsp;:&nbsp;printf(</span><span class="string">"Closing&nbsp;price&nbsp;T-1&nbsp;:&nbsp;"</span><span>);&nbsp;</span><span class="keyword">break</span><span>;&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">case</span><span>&nbsp;5&nbsp;&nbsp;:&nbsp;printf(</span><span class="string">"Opening&nbsp;price&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;"</span><span>);&nbsp;</span><span class="keyword">break</span><span>;&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">case</span><span>&nbsp;6&nbsp;&nbsp;:&nbsp;printf(</span><span class="string">"Ups&nbsp;and&nbsp;downs&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;"</span><span>);&nbsp;</span><span class="keyword">break</span><span>;&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">case</span><span>&nbsp;7&nbsp;&nbsp;:&nbsp;printf(</span><span class="string">"Mininum&nbsp;price&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;"</span><span>);&nbsp;</span><span class="keyword">break</span><span>;&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">case</span><span>&nbsp;8&nbsp;&nbsp;:&nbsp;printf(</span><span class="string">"Maxinum&nbsp;price&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;"</span><span>);&nbsp;</span><span class="keyword">break</span><span>;&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">case</span><span>&nbsp;9&nbsp;&nbsp;:&nbsp;printf(</span><span class="string">"Amount&nbsp;of&nbsp;up/down&nbsp;:&nbsp;"</span><span>);&nbsp;</span><span class="keyword">break</span><span>;&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">case</span><span>&nbsp;10&nbsp;:&nbsp;printf(</span><span class="string">"Trading&nbsp;volume&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;"</span><span>);&nbsp;</span><span class="keyword">break</span><span>;&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">case</span><span>&nbsp;11&nbsp;:&nbsp;printf(</span><span class="string">"Trading&nbsp;amount&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;"</span><span>);&nbsp;</span><span class="keyword">break</span><span>;&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">case</span><span>&nbsp;12&nbsp;:&nbsp;printf(</span><span class="string">"Buy&nbsp;price&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;"</span><span>);&nbsp;</span><span class="keyword">break</span><span>;&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">case</span><span>&nbsp;13&nbsp;:&nbsp;printf(</span><span class="string">"Sell&nbsp;price&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;"</span><span>);&nbsp;</span><span class="keyword">break</span><span>;&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">case</span><span>&nbsp;14&nbsp;:&nbsp;printf(</span><span class="string">"Agency&nbsp;trans&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;"</span><span>);&nbsp;</span><span class="keyword">break</span><span>;&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">case</span><span>&nbsp;15&nbsp;:&nbsp;printf(</span><span class="string">"Buy&nbsp;&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;"</span><span>);&nbsp;</span><span class="keyword">break</span><span>;&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">case</span><span>&nbsp;16&nbsp;:&nbsp;printf(</span><span class="string">"Buy&nbsp;&nbsp;2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;"</span><span>);&nbsp;</span><span class="keyword">break</span><span>;&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">case</span><span>&nbsp;17&nbsp;:&nbsp;printf(</span><span class="string">"Buy&nbsp;&nbsp;3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;"</span><span>);&nbsp;</span><span class="keyword">break</span><span>;&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">case</span><span>&nbsp;18&nbsp;:&nbsp;printf(</span><span class="string">"Buy&nbsp;&nbsp;4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;"</span><span>);&nbsp;</span><span class="keyword">break</span><span>;&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">case</span><span>&nbsp;19&nbsp;:&nbsp;printf(</span><span class="string">"Buy&nbsp;&nbsp;5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;"</span><span>);&nbsp;</span><span class="keyword">break</span><span>;&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">case</span><span>&nbsp;20&nbsp;:&nbsp;printf(</span><span class="string">"Sell&nbsp;1&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;"</span><span>);&nbsp;</span><span class="keyword">break</span><span>;&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">case</span><span>&nbsp;21&nbsp;:&nbsp;printf(</span><span class="string">"Sell&nbsp;2&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;"</span><span>);&nbsp;</span><span class="keyword">break</span><span>;&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">case</span><span>&nbsp;22&nbsp;:&nbsp;printf(</span><span class="string">"Sell&nbsp;3&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;"</span><span>);&nbsp;</span><span class="keyword">break</span><span>;&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">case</span><span>&nbsp;23&nbsp;:&nbsp;printf(</span><span class="string">"Sell&nbsp;4&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;"</span><span>);&nbsp;</span><span class="keyword">break</span><span>;&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">case</span><span>&nbsp;24&nbsp;:&nbsp;printf(</span><span class="string">"Sell&nbsp;5&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;:&nbsp;"</span><span>);&nbsp;</span><span class="keyword">break</span><span>;&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">default</span><span>&nbsp;:&nbsp;</span><span class="keyword">break</span><span>;&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;printf(<span class="string">"%s\n"</span><span>,&nbsp;response.getStockInfoByCodeResult-&gt;string);&nbsp;&nbsp;</span></span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">else</span><span>&nbsp;{&nbsp;&nbsp;</span></span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;soap_print_fault(&amp;soap,&nbsp;stderr);&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;soap_destroy(&amp;soap);&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;soap_end(&amp;soap);&nbsp;&nbsp;</span></li><li class="alt"><span>&nbsp;&nbsp;&nbsp;&nbsp;soap_done(&amp;soap);&nbsp;&nbsp;</span></li><li class=""><span>&nbsp;&nbsp;&nbsp;&nbsp;<span class="keyword">return</span><span>&nbsp;0;&nbsp;&nbsp;</span></span></li><li class="alt"><span>}&nbsp;&nbsp;</span></li></ol></div> </span></p>

<p><span style="font-family: &quot;Courier New&quot;; font-size: 12pt; mso-fareast-font-family: 宋体; mso-ansi-language: EN-US; mso-fareast-language: ZH-CN; mso-bidi-language: AR-SA;" lang="EN-US">
</span></p><p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Courier New';">使服务端程序在某一高位端口下运行,比如</span><span style="font-family: &quot;Courier New&quot;;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;;" lang="EN-US">-bash-3.2$ <strong style="mso-bidi-font-weight: normal;"><span style="color: blue;">./stock_server 6883</span></strong></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US">Socket connect successfully: master socket = 3</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;;" lang="EN-US">&nbsp;</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Courier New';">另起一个窗口执行客户端程序,并且指定</span><span style="font-family: &quot;Courier New&quot;;" lang="EN-US">end point</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;;" lang="EN-US">-bash-3.2$ <strong style="mso-bidi-font-weight: normal;"><span style="color: blue;">./stock sh600000 http://localhost:6883</span></strong></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US">Stock code<span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>: sh600000</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US">Stock name<span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>: sh600000</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US">Timestamp<span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>: sh600000</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US">Latest price<span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>: sh600000</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US">Closing price T-1 : sh600000</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US">Opening price<span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp; </span>: sh600000</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US">Ups and downs<span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp; </span>: sh600000</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US">Mininum price<span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp; </span>: sh600000</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US">Maxinum price<span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp; </span>: sh600000</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US">Amount of up/down : sh600000</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US">Trading volume<span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp; </span>: sh600000</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US">Trading amount<span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp; </span>: sh600000</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US">Buy price<span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>: sh600000</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US">Sell price<span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>: sh600000</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US">Agency trans<span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>: sh600000</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US">Buy<span style="mso-spacerun: yes;">&nbsp; </span>1<span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>: sh600000</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US">Buy<span style="mso-spacerun: yes;">&nbsp; </span>2<span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>: sh600000</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US">Buy<span style="mso-spacerun: yes;">&nbsp; </span>3<span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>: sh600000</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US">Buy<span style="mso-spacerun: yes;">&nbsp; </span>4<span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>: sh600000</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US">Buy<span style="mso-spacerun: yes;">&nbsp; </span>5<span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>: sh600000</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US">Sell 1<span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>: sh600000</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US">Sell 2<span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>: sh600000</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US">Sell 3<span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>: sh600000</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US">Sell 4<span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>: sh600000</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;; color: green;" lang="EN-US">Sell 5<span style="mso-spacerun: yes;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span>: sh600000</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;;" lang="EN-US">&nbsp;</span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: 宋体; mso-ascii-font-family: 'Courier New'; mso-hansi-font-family: 'Times New Roman'; mso-bidi-font-family: 'Courier New';">成功!</span><span style="font-family: &quot;Courier New&quot;;" lang="EN-US"></span></p>
<p class="MsoNormal" style="margin: 0cm 0cm 0pt;"><span style="font-family: &quot;Courier New&quot;;" lang="EN-US">&nbsp;</span></p>
               
               
               
               
页: [1]
查看完整版本: 使用gSOAP开发实例(2) 股票信息服务端程序