C Soap程式設計入門

2021-08-18 21:50:06 字數 3113 閱讀 5294

原理:請自行了解wsdl、webservice、soap

soap簡單介紹

wsdl簡單介紹

webservice簡單介紹

畢竟是簡單介紹,了解基本資訊即可

wsdl2h用作wsdl和.h檔案的轉換。

soapcpp2用標頭檔案生成客戶端/服務端等開發需要的h和cpp檔案,也可以生成wsdl檔案

此處直接使用gsoap2.8中自帶的sample演示。目錄為gsoap-2.8\gsoap\samples\calc。gsoap-2.8\gsoap\samples中有很多例項,網上多疑calc為例,本文也是。

(cd   到gsoapcpp2和wsdl2h所在目錄)

服務端:

1.生成服務端必要檔案

soapcpp2.exe -s -i  ..\..\samples\calc\calc.h

-s表示生成服務端檔案

-i表示從

soap

結構生成服務**和繼承的物件

這裡win32目錄下會生成很多xml檔案、cpp檔案、h檔案,還有wsdl檔案、nsmap檔案、xsd檔案,可以通過-d引數指定路徑,以免管理混亂,還可以拒絕xml檔案的生成

請先手動在win32目錄下建立calcserver目錄

soapcpp2.exe -s -i -x ..\..\samples\calc\calc.h -d .\calcserver

-x表示不生成xml檔案,結果如下

2.新建工程

不贅述

main.cpp**如下

需要自己實現h檔案中定義的4個介面。可以理解為:h檔案裡面宣告了,總得自己實現吧。可以參考gsoap-2.8\gsoap\samples\calc中calcserver.cpp的實現。只有標頭檔案和參考的cpp檔案的情況下,自己不實現,沒人幫你實現。

除了main.cpp檔案以外,還需要將生成的

calc.nsmap

soapc.cpp

soapcalcservice.cpp

soapcalcservice.h

soaph.h

soapstub.h

和gsoap目錄下的

stdsoap2.cpp

stdsoap2.h

複製到工程目錄下

3.直接編譯,測試

編譯後,用命令列視窗執行testsoapcalc 8080

然後用瀏覽器開啟http://localhost:8080

看到的是

因為只是開啟埠,並沒有通訊,所以只能看到這些,編譯執行客戶端程式就能看到效果了

客戶端:

1.生成客戶端必要檔案

soapcpp2.exe -c -i -x ..\..\samples\calc\calc.h -d .\calcclient\

請手動在win32目錄下建立calcclient目錄 

-c表示生成客戶端**

2.新建工程

需要複製的是生成的

calc.nsmap

soapc.cpp

soapcalcproxy.cpp

soapcalcproxy.h

soaph.h

soapstub.h

以及soap目錄下的

stdsoap2.cpp

stdsoap2.h

一定要記得stdsoap2.cpp和stdsoap2.h,

一定要記得stdsoap2.cpp和stdsoap2.h,

一定要記得stdsoap2.cpp和stdsoap2.h,

重要的事情說三遍

main.cpp**如下

}其中const char server = "http://localhost:8080";指定埠號,埠號可改以服務端設定的埠號為準

3.編譯執行

服務端程式要執行起來才能執行客戶端程式,雖然都在同一臺電腦裡面

testsoapcalcclient.exe a 1 2

運算1和2的加法

運算完後服務端不會退出,但是客戶端會退出,可繼續執行命令

soapcalcproxy.cpp和soapclient.cpp有衝突

-i生成soapcalcproxy.cpp,不會生成soapclient.cpp檔案

不要-i則生成soapclient.cpp不生成soapcalcproxy.cpp檔案

沒有soapclient.cpp也沒關係,只要有編譯出來的nsmap檔案、cpp檔案、h檔案和soap目錄下的stdsoap2.cpp、stdsoap2.h檔案就夠了

程式設計入門

include include int main const double pi acos 1.0 盡量用const關鍵字宣告常數 輸入乙個三位數,分離出它的百位,十位與個位,反轉後輸出 include int main md是輸出m位的十進位制數,不足m位的補空格,超出m位的輸出實際位數 0md是...

程式設計入門

程式設計 資料結構 演算法 一 資料結構 1 資料元素 是組成資料的 有一定意義的基本單位。如 人 2 資料項 乙個資料可以由若干個資料項組成,根據自己的需要,資料項是不可分割 的最小單位。如 如人的耳 鼻 嘴等。3 資料物件 是性質相同的資料元素的集合,是資料的子集。4 資料結構 是相互之間存在一...

程式設計入門

一.程式設計過程 1.分析 分析所給定的條件,最後結果以及問題規律 2.設計 3.編碼 4.測試 5.排錯 6.編寫文件 包含 設計者,程式名稱,功能,執行環境,輸入資料,注意事項,裝入啟動 二.程式設計方法 1.面向過程 分析出解決問題所需要的步驟,然後用函式把這些步驟一步一步實現。2.物件導向 ...