您的位置:首頁(yè) >  新聞中心 > 短彩信知識(shí)
  短彩信知識(shí)
 

網(wǎng)絡(luò)在線網(wǎng)頁(yè)發(fā)短信通知平臺(tái)在CMPP3.0協(xié)議中非托管模塊的調(diào)用方法

來(lái)源:原創(chuàng)    時(shí)間:2018-03-02    瀏覽:0 次

    隨著移動(dòng)通信的飛速發(fā)展,市場(chǎng)競(jìng)爭(zhēng)日益集中于商業(yè)和服務(wù)競(jìng)爭(zhēng)中,移動(dòng)增值業(yè)務(wù)已成為國(guó)際移動(dòng)通信領(lǐng)域最受關(guān)注的話題。中國(guó)移動(dòng)增值服務(wù)市場(chǎng)將以每年超過(guò)30%的速度增長(zhǎng).?;贑MPP協(xié)議的短信增值業(yè)務(wù)是目前最重要的移動(dòng)增值業(yè)務(wù).。本文提出了一種基于CMP P3.0協(xié)議的Internet網(wǎng)絡(luò)在線網(wǎng)頁(yè)發(fā)短信通知平臺(tái)。非托管模塊的調(diào)用方法。CMPP中國(guó)移動(dòng)對(duì)等(中國(guó)移動(dòng)點(diǎn)對(duì)點(diǎn)到對(duì)等)協(xié)議。中國(guó)移動(dòng)互聯(lián)網(wǎng)短消息網(wǎng)關(guān)接口協(xié)議。它是與中國(guó)移動(dòng)通信公司的“夢(mèng)想網(wǎng)絡(luò)項(xiàng)目”共同創(chuàng)建的。

blob.png

     一套基于短信的移動(dòng)互聯(lián)網(wǎng)應(yīng)用解決方案?;ヂ?lián)網(wǎng)短信服務(wù)平臺(tái)接收信息流的方式如下:移動(dòng)客戶可以使用手機(jī)終端向服務(wù)提供商SP發(fā)送短信請(qǐng)求,在收到短信短信服務(wù)中心的請(qǐng)求后,根據(jù)SMPPU的短消息對(duì)等(短消息對(duì)等)標(biāo)準(zhǔn),ISMGN因特網(wǎng)短消息網(wǎng)關(guān)(ISMGN)將請(qǐng)求轉(zhuǎn)發(fā)給ISMGN Internet快捷方式。ISMG通過(guò)CMP P#en0#中國(guó)移動(dòng)對(duì)等協(xié)議向客戶端發(fā)送請(qǐng)求。SP實(shí)際上是指客戶端請(qǐng)求的SPN。我們想要建立的短消息平臺(tái)。短消息發(fā)送的流程與接收流相反。通過(guò)CMP P協(xié)議,構(gòu)建以Internet為媒介的短消息網(wǎng)關(guān)(ISMG)通信信道,完成短消息的收發(fā)操作。

     因特網(wǎng)短消息網(wǎng)關(guān)網(wǎng)絡(luò)結(jié)構(gòu)2。NET框架。NET框架作為一種新的開(kāi)發(fā)平臺(tái),軟件開(kāi)發(fā)技術(shù).NET已經(jīng)成為主流的軟件開(kāi)發(fā)技術(shù),是一個(gè)支持各種用戶終端的面向網(wǎng)絡(luò)的開(kāi)發(fā)平臺(tái)。它提供了一個(gè)統(tǒng)一的命令集來(lái)支持各種編程語(yǔ)言,使應(yīng)用程序開(kāi)發(fā)獨(dú)立于語(yǔ)言。您可以選擇多種編程語(yǔ)言,包括C#C、VisualBasicVisualJ#等。

可以使用.NET開(kāi)發(fā)在手持設(shè)備上運(yùn)行的小型組件,如跨Web場(chǎng)的ASP.NET應(yīng)用程序那樣大。最重要的概念是,公共語(yǔ)言運(yùn)行時(shí)CLR可以被視為.NET Framework的核心。其任務(wù)是管理和執(zhí)行為.NET Framework編寫(xiě)的代碼。使用.NET編譯器編譯的代碼總是在運(yùn)行時(shí)的幫助下運(yùn)行。這樣的代碼稱(chēng)為托管代碼。運(yùn)行時(shí)為托管代碼提供了多種服務(wù),例如跨語(yǔ)言集成、代碼訪問(wèn)安全性、對(duì)象生存期管理、調(diào)試和分析支持3的代碼。

     由公共語(yǔ)言運(yùn)行時(shí)環(huán)境而不是由操作系統(tǒng)執(zhí)行的非托管模塊稱(chēng)為托管代碼。相比之下,在公共語(yǔ)言運(yùn)行環(huán)境之外直接執(zhí)行的代碼稱(chēng)為非托管代碼,用非托管代碼構(gòu)建的程序模塊(稱(chēng)為非托管模塊4)是實(shí)現(xiàn)Internet SMS平臺(tái)的關(guān)鍵問(wèn)題,它是基于CMP P3.0協(xié)議實(shí)現(xiàn)短消息平臺(tái)與短消息網(wǎng)關(guān)之間通信的關(guān)鍵問(wèn)題。中國(guó)移動(dòng)通信集團(tuán)采取動(dòng)態(tài)鏈接庫(kù)的形式。提供面向服務(wù)提供商的開(kāi)發(fā)接口api.dll,只有正確使用DLL才能保證與SMS網(wǎng)關(guān)的通信。這個(gè)DLL是一個(gè)不使用COM技術(shù)的API,也就是說(shuō),它是一個(gè)非托管模塊。

     通過(guò)托管代碼調(diào)用DLL(非托管模塊)中的函數(shù)需要解決以下兩個(gè)問(wèn)題:如何在DLL(非托管模塊)中引入函數(shù);參數(shù)封送方法。4.1在托管代碼中引入了DLL(非托管模塊)中的函數(shù),為了使托管代碼調(diào)用DLL中的函數(shù),Microsoft.NET框架提供了一種稱(chēng)為minvokeservices的P/Invoke平臺(tái)的技術(shù)。通過(guò)對(duì)非托管模塊中調(diào)用代碼的P/Invoke CLR支持,它允許使用傳統(tǒng)的CDLL文件和API函數(shù)。P/Invoke提供了豐富的類(lèi)型轉(zhuǎn)換工具。用于處理傳統(tǒng)的CDLL和CLR的內(nèi)在區(qū)別。

     P/P調(diào)用對(duì)安全權(quán)限的要求,以確保系統(tǒng)的安全性不受損害。與執(zhí)行未經(jīng)身份驗(yàn)證的代碼類(lèi)似,調(diào)用傳統(tǒng)的CDLL也被認(rèn)為是一種高度特權(quán)的操作。因此,P/Invoke引擎將請(qǐng)求UnManagedCode權(quán)限。必須顯式授予使用P/Invoke的組件此權(quán)限。

     使用P/Invoke非常簡(jiǎn)單,P/Invoke需要從非托管模塊中導(dǎo)出C函數(shù),然后在托管模塊中使用特別的元數(shù)據(jù)指令進(jìn)行重新聲明。這些指令標(biāo)明DLL的文件名和DLL中入口項(xiàng)的符號(hào)名??梢酝ㄟ^(guò)使用語(yǔ)言無(wú)關(guān)的S y s t e m.R u n t i m e.InteropServices.DllImport偽定制屬性制定使用P/Invoke的方法。必須用DllImport屬性標(biāo)記方法為exter(n外部的),并且使用與外部DLL中的目標(biāo)函數(shù)匹配的方法簽名聲明它們。最后,每一個(gè)P/Invoke方法有兩個(gè)簽名:顯式簽名是托管代碼調(diào)用時(shí)可見(jiàn)的;隱式簽名則是外部DLL函數(shù)預(yù)期的。P/Invoke將根據(jù)默認(rèn)的映射規(guī)則和定制特性,推斷出非托管簽名。DllImport屬性采用多種參數(shù)定制外部方法和簽名如何被導(dǎo)入和解析。如表一所示,DllImport屬性至少需要一個(gè)value參數(shù)。表一DllImport屬性參數(shù)下面的代碼顯示用DllImport屬性調(diào)用api.dll中的cmpp30_connect_to_ismg函數(shù)。usingSystem;usingSystem.Runtime.InteropServices;classTest{[DllImport("D:SMSpi.dll",CharSet=CharSet.Ansi,EntryPoint="cmpp30_connect_to_ismg")]publicstaticexternintConnectToISMG(stringhost,System.UInt16port,conn_descconn);publicstaticvoidMain(){intstatus=ConnectToISMG“(211.139.17.75”,7892,conn);}}上面這段代碼顯示了聲明非托管DLL中方法的一些要求。ConnectToISMG()方法被聲明為static,這是P/Invoke方法所要求的,因?yàn)樵谠揂PI中沒(méi)有一致的實(shí)例概念。接下來(lái),還要注意該方法被標(biāo)記為extern,這是提示編譯器該方法是通過(guò)一個(gè)從DLL導(dǎo)出的函數(shù)實(shí)現(xiàn)的,因此不需要提供方法體。

llImport屬性值的參數(shù)表示方法:SMSAPI.DLL;D的托管代碼的入口參數(shù)可以調(diào)用C O N N E C T O M G我的方法,cmpp30_connect_to_ismg P I D的方法映射到L L前者是明確的簽名在P/Invoke方法,后者是隱式簽名;字符集參數(shù)設(shè)置的字符或字符串?dāng)?shù)據(jù)的編碼,如果DLL功能不以任何方式處理文本,你可以忽略字符DllImport屬性。如果沒(méi)有顯式地設(shè)置CharSet屬性,默認(rèn)值是CharSet.Ansi。在api.dll所有的函數(shù)調(diào)用,字符將被設(shè)置為CharSet. ANSI 4.2指定參數(shù)封送處理模式的框架下構(gòu)建.NET編程語(yǔ)言不同的代碼,可以順利地一起工作,這是很重要的原因是,.NET框架有一個(gè)統(tǒng)一的類(lèi)型系統(tǒng),稱(chēng)為通用類(lèi)型系統(tǒng)(commontypesystem,簡(jiǎn)稱(chēng)作為CTS)。但是,.NET框架與非托管代碼不一致的問(wèn)題,某些類(lèi)型的。

     一致的類(lèi)型可以直接操作;類(lèi)型不一致,某些技術(shù)將是類(lèi)型轉(zhuǎn)換,因此托管和非托管模塊可以協(xié)調(diào)工作。你可以指定一個(gè)自定義封送處理的財(cái)產(chǎn)轉(zhuǎn)移給非托管函數(shù)或結(jié)構(gòu)領(lǐng)域從非托管函數(shù)和類(lèi)。通過(guò)添加M的場(chǎng)結(jié)構(gòu)或類(lèi)R S H A1A的財(cái)產(chǎn)也必須物理布局?jǐn)?shù)據(jù)字段使用structlayout屬性可以讓用戶控制類(lèi)或結(jié)構(gòu)也可以控制字符串的成員的默認(rèn)封送處理,并設(shè)置默認(rèn)的封裝尺寸。

    下面是一個(gè)結(jié)構(gòu)的MFC:structcmpp30icp_submit { dpl_int64_t msg_id;dpl_uint8_t pk_total;dpl_uint8_t pk_number;dpl_uint8_t registered_delivery;dpl_uint8_t msg_level;] publicstringsvc_type;publicsystem.bytefee_utype;SizeConst = 11)[ MarshalAs(unmanagedtype.byvaltstr,SizeConst = 33)] publicstringfee_user;structlayout…}屬性布局參數(shù)LayoutKind。順序,表明在一個(gè)cmpp30icp_submit結(jié)構(gòu)創(chuàng)作,現(xiàn)場(chǎng)布置規(guī)則秩序。在dpl_int64_t型非托管模塊,system.int64類(lèi)型對(duì)應(yīng)的CLR,他們代表8字節(jié)有符號(hào)整數(shù)的長(zhǎng)度;同樣,系統(tǒng)。

     字節(jié)型dpl_uint8_t非托管模塊對(duì)應(yīng)的CLR,無(wú)符號(hào)整數(shù)表示一個(gè)字節(jié)的長(zhǎng)度。兩者都是CLR類(lèi)型和C類(lèi)型默認(rèn)值之間的映射。當(dāng)默認(rèn)的映射不能滿足需要,你可以使用S Y S T E M R u n T我e.interopservices基于the.marshalas屬性參數(shù)的參數(shù)(或領(lǐng)域)的方式來(lái)覆蓋這些默認(rèn)的映射。

     在.NET字符串?dāng)?shù)據(jù)類(lèi)型是未指定的長(zhǎng)度M,R S H L S屬性和unmanagedtype.byvaltstr SizeConst參數(shù),指定字符串類(lèi)型CLR成指定長(zhǎng)度的結(jié)論Microsoft .NET框架已經(jīng)成為軟件工程發(fā)展的一種平臺(tái)A.5字符數(shù)組。本文提出了一種基于.net的CMPP3.0協(xié)議的互聯(lián)網(wǎng)短信服務(wù)平臺(tái),并闡述了該平臺(tái)的關(guān)鍵技術(shù)與實(shí)例。在這個(gè)服務(wù)平臺(tái)的基礎(chǔ)上,添加特定的業(yè)務(wù)邏輯,可以實(shí)現(xiàn)如移動(dòng)支付等。


免费视频观无码一区,国内精品一区二区无码,99精品无码视频在线播放,ā片国产在线播放