今天就跟大家聊聊有關(guān) 在Windows CE下如何實(shí)現(xiàn)撥號(hào)上網(wǎng) ,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。
成都創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比都昌網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式都昌網(wǎng)站制作公司更省心,省錢,快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋都昌地區(qū)。費(fèi)用合理售后完善,10多年實(shí)體公司更值得信賴。
目前基于Windows CE的產(chǎn)品大多數(shù)具有上網(wǎng)功能,能夠連接到Internet實(shí)現(xiàn)瀏覽網(wǎng)頁(yè)、收發(fā)郵件等基本功能。要實(shí)現(xiàn)更多的功能取決于連接Internet的速度,而速度取決于連接Internet的方式。連接Internet的方式分為兩種:有線和無(wú)線。事實(shí)上大多數(shù)產(chǎn)品還是采用無(wú)線上網(wǎng)方式。
基于Windows mobile的Pocket PC和Smart phone能夠輕松實(shí)現(xiàn)上網(wǎng)功能。這兩種產(chǎn)品的軟件開(kāi)發(fā)人員可以不必過(guò)多考慮如何實(shí)現(xiàn)撥號(hào)上網(wǎng)。而對(duì)于采用定制Windows CE內(nèi)核的產(chǎn)品而言,相關(guān)的軟件開(kāi)發(fā)人員必須自己實(shí)現(xiàn)撥號(hào)上網(wǎng)。幸運(yùn)的是Windows CE的SDK中包含了撥號(hào)上網(wǎng)的支持,使軟件開(kāi)發(fā)人員的工作大大減輕。
撥號(hào)上網(wǎng)的硬件設(shè)備可以是獨(dú)立的帶內(nèi)置調(diào)制解調(diào)器和具有GPRS功能的手機(jī),也可以是嵌入到主板中帶有同樣功能的手機(jī)芯片。具體是什么并不重要,因?yàn)閃indows CE包含的撥號(hào)上網(wǎng)模塊采用標(biāo)準(zhǔn)的AT命令集與硬件設(shè)備通信。軟件開(kāi)發(fā)人員可以直接利用CE提供的接口函數(shù)來(lái)控制整個(gè)撥號(hào)過(guò)程,直到斷開(kāi)連接。
Windows CE.NET 提供了一個(gè)被稱為RAS(Remote Access Service)的服務(wù),通過(guò)RAS基于Windows CE的產(chǎn)品可以通過(guò)WAN(廣域網(wǎng))或VPN(虛擬個(gè)人網(wǎng)絡(luò))連接到遠(yuǎn)程服務(wù)器上。調(diào)用RAS的應(yīng)用程序通常在客戶機(jī)上執(zhí)行,通過(guò)電話網(wǎng)連接到遠(yuǎn)程服務(wù)器,這種連接使用兩種標(biāo)準(zhǔn)的遠(yuǎn)程訪問(wèn)協(xié)議:PPP點(diǎn)對(duì)點(diǎn)協(xié)議和SLIP串行線路Internet協(xié)議。RAS結(jié)構(gòu)如圖1所示。從圖中可以看出RAS處于ISO/OSI模型的上層,下層的TAPI(電話API)調(diào)用Unimodem,Unimodem是通用的調(diào)制解調(diào)器驅(qū)動(dòng)程序,它調(diào)用串口API實(shí)現(xiàn)與調(diào)制解調(diào)設(shè)備的通信。
|
Windows CE.NET下RAS所具備的所有功能同PC下的相似,同樣支持電話本、撥號(hào)控制腳本。不同的是CE下的RAS的電話本是存放在注冊(cè)表中。這些都是次要的功能,在此不給予講述。實(shí)現(xiàn)撥號(hào)必須調(diào)用的函數(shù)如下:
函數(shù) | 描述 |
RasDial | 建立RAS連接 |
RasEnumEntries | 列出注冊(cè)表中所有撥號(hào)記錄 |
RasGetConnectStatus | 獲得指定遠(yuǎn)程訪問(wèn)連接的當(dāng)前狀態(tài)。 |
RasGetEntryDialParams | 獲得指定的上次成功撥號(hào)記錄的連接數(shù)據(jù)(參數(shù)) |
RasSetEntryDialParams | 設(shè)置指定的上次成功撥號(hào)記錄的連接數(shù)據(jù)(參數(shù)) |
RasGetEntryProperties | 獲得撥號(hào)記錄屬性 |
RasSetEntryProperties | 設(shè)置撥號(hào)記錄屬性 |
RasHangUp | 終止RAS連接 |
基于Windows CE的產(chǎn)品在設(shè)計(jì)上有的能夠在斷電前保存注冊(cè)表數(shù)據(jù),有的不能夠。對(duì)于不能夠保存注冊(cè)表數(shù)據(jù)的產(chǎn)品,采用電話本來(lái)?yè)芴?hào)是行不通的。只能讓用戶每次啟動(dòng)后重新輸入撥號(hào)數(shù)據(jù),或者將數(shù)據(jù)保存到永久存儲(chǔ)器上,在下一次撥號(hào)程序啟動(dòng)時(shí)先讀取撥號(hào)數(shù)據(jù)。
整個(gè)撥號(hào)狀態(tài)分為同步和異步兩種。同步狀態(tài)下RasDial函數(shù)直到建立連接或者發(fā)生錯(cuò)誤不能繼續(xù)工作時(shí)才返回。同步模式的缺點(diǎn)是客戶不能收到連接操作的當(dāng)前狀態(tài)和進(jìn)度信息。但是仍然有解決方法,辦法是創(chuàng)建一個(gè)新的線程來(lái)進(jìn)行撥號(hào)(調(diào)用RasDial),另外創(chuàng)建一個(gè)新的線程每隔一段時(shí)間查詢當(dāng)前撥號(hào)狀態(tài)(調(diào)用RasGetConnectStatus)。相比較異步模式在得到當(dāng)前撥號(hào)狀態(tài)方面要容易的多。異步模式下RasDial函數(shù)會(huì)立刻返回,接著可以調(diào)用RasGetConnectStatus得到當(dāng)前撥號(hào)狀態(tài)。
RasGetEntryDialParams和RasGetEntryProperties兩個(gè)函數(shù)得到的是不同方面的數(shù)據(jù)。在此做一說(shuō)明:CE為DialPrarms撥號(hào)參數(shù)定義了結(jié)構(gòu)體RASDIALPARAMS。它包括撥號(hào)記錄名、電話號(hào)碼、用戶名、密碼、域名等。而對(duì)于Properties屬性數(shù)據(jù),CE定義了結(jié)構(gòu)體RASENTRY。它包括連接選項(xiàng)、國(guó)家碼、區(qū)域碼、本地電話號(hào),可以指定本地IP地址、遠(yuǎn)程DNS服務(wù)器IP、遠(yuǎn)程WINS服務(wù)器IP等,還可以指定連接控制腳本文件路徑、采用的協(xié)議、調(diào)制解調(diào)器類型及名稱等。在撥號(hào)前一定要設(shè)置要這些參數(shù),不過(guò)不必每個(gè)參數(shù)都設(shè)置。最簡(jiǎn)單的辦法是得到系統(tǒng)默認(rèn)的所有參數(shù)。調(diào)用代碼如下:
DWORD dwReturn; dwReturn = RasGetEntryProperties(NULL, L"", &RasEntry, &dwSize, NULL, NULL); if(dwReturn != 0) { ////不能得到系統(tǒng)撥號(hào)參數(shù) return; } |
得到系統(tǒng)默認(rèn)的參數(shù)后再加以修改,這樣避免了設(shè)置錯(cuò)誤的參數(shù),而且大多數(shù)參數(shù)不用我們?cè)O(shè)置。關(guān)于撥號(hào)上網(wǎng)就講這么多,如果讀者有疑問(wèn)或者遇到困難可以發(fā)郵件給我,如果有時(shí)間我將回復(fù)。
看完上述內(nèi)容,你們對(duì) 在Windows CE下如何實(shí)現(xiàn)撥號(hào)上網(wǎng) 有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。