zoukankan      html  css  js  c++  java
  • WAP手机远程遥控电脑(转)

  • 一、 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

查看全文
  • 相关阅读:
    leetcode231 2的幂 leetcode342 4的幂 leetcode326 3的幂
    leetcode300. Longest Increasing Subsequence 最长递增子序列 、674. Longest Continuous Increasing Subsequence
    leetcode64. Minimum Path Sum
    leetcode 20 括号匹配
    算法题待做
    leetcode 121. Best Time to Buy and Sell Stock 、122.Best Time to Buy and Sell Stock II 、309. Best Time to Buy and Sell Stock with Cooldown 、714. Best Time to Buy and Sell Stock with Transaction Fee
    rand7生成rand10,rand1生成rand6,rand2生成rand5(包含了rand2生成rand3)
    依图
    leetcode 1.Two Sum 、167. Two Sum II
    从分类,排序,top-k多个方面对推荐算法稳定性的评价
  • 原文地址:https://www.cnblogs.com/Apollo/p/430413.html
  • Copyright © 2011-2022 走看看