用WAP手機遠程遙控電腦

來源:互聯網
上載者:User

曾經在報紙和雜誌上多次見過討論遠端控制電腦的文章,這些文章中使用的軟體大多是基於NetmeetingpcAnywhere的,這些軟體固然有它的優點,但他們完全依靠電腦,並且伺服器和客戶機之間必須足夠快的網速。假如坐在公用汽車上去控制家裡的電腦,舉著筆記本和一個GPRS手機,恐怕就困難的多。有沒有一個更加方便的手段去遠端控制電腦呢?前幾天剛申請了手機的WAP業務,是否能通過手機的WAP瀏覽器控制電腦呢?我通過WAP網頁、ASP和VB實現了這套控製程序。

一、 WAP伺服器的架設

要讓WAP成為手機和電腦交流的媒介,必選先建立一個WAP伺服器。該伺服器必須擁有獨立的IP地址,建議擁有獨立的網域名稱,避免更改IP地址的麻煩,我使用的是花生殼動態網域名稱解析服務。

我所使用的伺服器軟體是微軟的IIS6.0,作業系統是Microsoft Windows Server 2003
在IIS平台建立一個新的MIME類型。先選擇WAP網站的屬性,然後選擇“HTTP頭”標籤。在“MIME類型”部分,點擊“MIME類型”並且建立以下資訊:

副檔名 MIME 類型
Wml text/vnd.wap.wml
Wmlc application/vnd.wap.wmlc
Wbmp image/vnd.wap.wbmp
wmlsc application/vnd.wap.wmlscriptc
Wmls text/vnd.wap.wmlscript
Wsc application/vnd.wap/wmlscriptc

完成以後,將會顯示以下幾種類型:

現在,你就可以把你的網站內容加到網站資料夾裡面了。

二、 WML語言

WML(Wireless Markup Language)是用於WAP的標記語言。WML分頁檔的尾碼是 *.WML,就象HTML的 *.HTML尾碼。XML規定定義了一個規範的XML檔案的規格。任何違反這個規定的WML檔案會出錯。WML檔案通常使用XML解譯器起來解釋。

1、XML程式的基本結構

一個完整的WML語言教程需要好幾十頁,這些教程可以在網上找到,這裡只大致介紹一些必要的知識。我們首先從一個簡單的頁面開始。

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.com/DTD/wml_1.1.xml">
<wml>
<card title="Fenghao">
<p>I'm fenghao</p>
</card>
</wml>

此程式在手機上顯示“I'm fenghao”。

WML語言是一個很嚴格的,哪怕一點不同都會導致錯誤。所有的WML程式必須在檔案的開頭處聲明XML檔案類型,包括XML的版本,WML的文件類型、所用規範等。聲明形式如下:

<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.com/DTD/wml_1.1.xml">

WML文檔是由“卡片(Card)”和“卡片組(Deck)”構成的,一個Deck是一個或多個Card的集合。當用戶端發出請求之後,WML即從網路上把Deck發送到客戶瀏覽器,這是使用者就可以瀏覽Deck內包含的所有Card,而不必從網上單獨下載每一個Card,程式中的第一個Card是預設得可見的Card。

<xml>標籤:該標籤用於包含和定義WML的一個Deck。它有一個可選的xml:lang屬性來制定文檔的語言,比如<wml xml:lang="zh">表示文檔語言為中文。

<card>標籤:WML均使用<card>和</card>進行包含和定義。 <card>同時可以包含多個可選的屬性,
如:
card id="name" title="label" newcontext="false" ordered="true" onenterforwand="url" pmemterbackward="url" ontimer="url">。

2、WAP網頁的建設

以下的程式放在網站的首頁上,名字是index.wml,手機WAP瀏覽器將訪問者個網頁,並要求使用者輸入執行操作的代碼,讓後將這個代碼傳送給resquest.asp。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN"
"http://www.wapforum.org/DTD/wml_1.1.xml">

<wml>
<!-- Possible <head> element here. -->
<head>
<meta forua="true" http-equiv="Cache-Control" content="max-age=0"/>
<meta forua="true" http-equiv="Cache-Control" content="must-revalidate"/>
</head>
<template>
<!-- Template implementation here. -->
<do type="prev"><prev/></do>
</template>
<card id="card1" title="wap" newcontext="true">
<p>
<b>code:</b><br/>
<input name="SID" size="10" maxlength="50" type="text" format="*N" emptyok="true"/><br/>
<br/>
<anchor title="login">
<go href="request.asp" method="post">
<postfield name="code" value="$SID"/>
</go>Implement!<br/>
</anchor>
</p>
</card>
</wml>

其中,go主要用來定義瀏覽器需要導航的URL地址。語句<go href="request.asp" method="post">中,href屬性用於指定目標URL地址;method屬性用於指定表單是以GET的方式還是post的方式遞交Postfield通過URL申請向ASP交換資料。<postfield name="code" value="$SID"/>中,name屬性用於指定傳輸域的名稱,value屬性用於定義傳輸的值。這兩個屬性均為必選屬性。

這裡給大家一個建議,現在在網上有不少WML瀏覽器,例如WinWAP,這些瀏覽器有的時候是不嚴格的,有些網頁在WinWAP上可以瀏覽,可在手機上偏偏不行,往往是因為一些細微的差錯。所以在調試的時候注意手機和WML瀏覽器的配合,避免在手機上無法執行時無從下手。

三、 伺服器端

request.asp是響應手機請求的伺服器端程式,它獲得使用者輸入的作業碼,讓後將這個代碼寫入一個文字檔。

<%@ Language=VBScript %>
<%Response.ContentType="text/vnd.wap.wml"
code=Request.Form("code")
filename="e:\code.txt"
Set fs = CreateObject("Scripting.FileSystemObject")
set ss = fs.CreateTextFile(filename,true)
ss.Write(code)
ss.Close%><?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/DTD/wml_1.1.xml">
<wml>
<card id="main">
<p>
Complete!!!
</p>
</card>
</wml>

程式讀取e:\code.txt存入變數Lstr,然後將0寫入文字檔(規定0不代表任何操作,避免程式重複執行同一操作)。最後通過判斷Lstr內容來決定進行什麼操作,此處,利用API函數ExitWindowsEx強行關機(在不同的作業系統中,此API函數有不同的效果,不如在Win9x環境下可以執行關機,重新啟動等操作,而在我的Windows2003 Server環境下,只能實現登出,如果將ExitWindowsEx第二個參數設定其他的常量如EWX_REBOOT則不會有任何效果)。

當然,遙控電腦不僅僅是要關機、重新啟動,更多的功能還等待去開發!

好了一切都準備就緒,現在開啟你的伺服器,拿出手機,玩一把手機遙控的電腦!

調試環境:

作業系統:Windows 2003 Enterprice Server

開發環境:Visual Basic 6.0

手機:PHILIPS Fisio 620 Openwave Mobile Browser 5.0.1.11 WAP Edition

電訊廠商:中國移動(動感地帶) 中國網通LAN寬頻

網域名稱解析:花生殼2.0

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.