91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

使用gsoap實現多客戶端,單服務端webservice

發布時間:2020-06-19 06:54:59 來源:網絡 閱讀:4169 作者:llf_17 欄目:編程語言

本工程代碼使用場景:2個webservice client ,1個webservice(本來有2個webservice,但富盛的不由我們管理開發)。
FS(富盛) webservice client, ZS(卓視) webservice client.  ZS(卓視) webservice.
本WebServiceClient 工程將FS(富盛) webservice client, ZS(卓視) webservice client合并到一個dll中。ZS(卓視) webservice為一個獨立進程。

現為webservice添加 ResetQueryRecordPerEncoderId 接口。以下是添加新接口過程:
webservice 端:
1.手動編寫pminfo.h,ns__ResetQueryRecordCounterPerEncoderId為新添加,頭文件全內容如下:
(注意頭文件里“//”不是注釋,是gsoap指令,不可缺少)
//gsoap ns service name:    PMInfo
//gsoap ns service protocol:    SOAP
//gsoap ns service style:    rpc
//gsoap ns service encoding:    encoded

//gsoap ns schema namespace:    urn:PMInfo

int ns__ResetQueryRecordCounterPerEncoderId(int encoder_id,int *result);
int ns__getFSwebserviceUrl(std::string *result);
int ns__getPM2_5(int encoder_id,int *result);
int ns__getPM10(int encoder_id,int *result);
int ns__getWindSpeed(int encoder_id,int *result);
int ns__getNoiseVal(int encoder_id,int *result);

2.在命令行中輸入以下命令,回車,則會生成服務端所需文件,最主要的是產生了 PMInfo.wsdl 文件。以文件可以反過來用wsdl2h.exe來生成標準的 gsoap頭文件PMInfo.h(此文件可另外命名)

soapcpp2.exe -S -x -i -L PMInfo.h -I./import/

3.執行 wsdl2h.exe -o PMInfo.h  PMInfo.wsdl 生成 自動版 PMInfo.h 這里面會將原來手動添加接口的指針類型轉換為引用類型。* =》 &
4.再執行 soapcpp2.exe -S -x -i -L PMInfo.h -I./import/ 生成自動版的引用類型gsoap相關文件。
5.編譯WebServiceSvr 服務端工程,會生成WebServiceSvr.exe.此時服務端修改完成.

Client 端:
客戶端DLL因為糅合了兩個webservice client,故相對單一client 要復雜一些。主要是命名空間的命名和區分,其實就是為了讓兩套client 互相不干擾。因為原本soapH.h soapStub.h soapC.cpp 這些文件如果在兩個client下會相互覆蓋,只有一個生效,故需用命名空間分開。
1.首先將剛生成的PMInfo.wsdl拷貝到 WebServiceClient 目錄 下,同時確保富盛的wsdl文件(“FSWebService.wsdl”)也在此目錄下:
2.wsdl2h.exe -o FS.h -qFS FSWebService.wsdl 生成FS.h作為gsoap文件(工程中不必包含).
3. wsdl2h.exe -o ZS.h -qZS PMInfo.wsdl 生成ZS.h
4. soapcpp2.exe -C -L -i -x -qZS ZS.h -I./import/ 生成卓視客戶端相關文件  注意:-x 不生成xml文件,這些文件對編碼沒用,一大堆,顯得雜亂。-qZS 使用ZS命名空間
5. soapcpp2.exe -C -L -i -x -qFS FS.h -I./import/ 生成富盛客戶端相關文件
6. soapcpp2.exe -C -penv env.h   生成環境頭文件。(單客戶端 時沒有此文件)
7. 編譯客戶端工程。結束。


Demo:
編譯testClientDLL進行測試。


更新:

--------------------------client-------------------------------------------------------
富盛webservice: http://222.35.102.20:81/
Client 端:
客戶端DLL因為糅合了兩個webservice client,故相對單一client 要復雜一些。主要是命名空間的命名和區分,其實就是為了讓兩套client 互相不干擾。因為原本soapH.h soapStub.h soapC.cpp 這些文件如果在兩個client下會相互覆蓋,只有一個生效,故需用命名空間分開。
1.首先將剛生成的PMInfo.wsdl拷貝到 WebServiceClient 目錄 下,同時確保富盛的wsdl文件(“FSWebService.wsdl”)也在此目錄下:
2.wsdl2h.exe -o FS.h -qFS FSWebService.wsdl 生成FS.h作為gsoap文件(工程中不必包含).
3. wsdl2h.exe -o ZS.h -qZS Service1.wsdl 生成ZS.h
4. soapcpp2.exe -C -L -i -x -qZS ZS.h -I./import/ 生成卓視客戶端相關文件  注意:-x 不生成xml文件,這些文件對編碼沒用,一大堆,顯得雜亂。-qZS 使用ZS命名空間
5. soapcpp2.exe -C -L -i -x -qFS FS.h -I./import/ 生成富盛客戶端相關文件
6. soapcpp2.exe -C -penv env.h   生成環境頭文件。(單客戶端 時沒有此文件)
7. 編譯客戶端工程。結束。


Demo:
編譯testClientDLL進行測試。

c#中生成wsdl文檔的方法(先編寫webservice服務,成功后,在cmd 輸入以下命令可生成wsdl文件)
disco http://192.168.2.10:8081/Service1.asmx

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

会宁县| 滨州市| 宁武县| 临邑县| 仁寿县| 峨眉山市| 十堰市| 民县| 巩留县| 屯昌县| 河南省| 大港区| 湘潭县| 塔河县| 喜德县| 阿拉善盟| 兴安县| 游戏| 东辽县| 南漳县| 保山市| 靖边县| 宁河县| 永和县| 四子王旗| 东台市| 黄山市| 黎川县| 平和县| 应城市| 平乐县| 赤峰市| 南郑县| 潜山县| 临沧市| 安徽省| 同德县| 日照市| 恭城| 福建省| 绥阳县|