.NET 开发的手机软件启动很慢,MFC 和 c++ win32 开发的手机软件都启动较快。但是,由于 .NET 平台有丰富的类库和开发模式,能最大限度缩短项目周期。特别对于开发经验不足的团队来说,能降低项目的风险(对启动速度要求较高的项目除外)。
[ 标签: .net ][ 固定链接:http://m.tanggaowei.com/2008/05/05/63.html ]
每个人都有一个世界,新的思想,能拥有新的世界
.NET 开发的手机软件启动很慢,MFC 和 c++ win32 开发的手机软件都启动较快。但是,由于 .NET 平台有丰富的类库和开发模式,能最大限度缩短项目周期。特别对于开发经验不足的团队来说,能降低项目的风险(对启动速度要求较高的项目除外)。
[ 标签: .net ]前言:
想做一个能发送饭否( fanfou.com ) 的手机客户端。开始想自己编译一个手机片的 cURL 使用,后来又打算自己写 HTTP 协议代码。最后决定用 Socket 来实现 HTTP 协议。在用 Socket 向 Baidu 正确地发送一条 HTTP GET 请求,并返回成功信息后,在此做一总结。
总结:
中国移动的 GPRS 有 CMNET 和 CMWAP 两种网络连接方式。CMNET 直接连接到 Internet,就跟电脑通过路由器连接电信宽带一样。CMWAP 则只能通过中国移动提供的代理服务器 (10.0.0.172:80 或 10.0.0.172:9201 等) 连接 Internet。
要通过 GPRS 连接 Internet,首先要“初始化网络连接”。Socket 不会自动“初始化网络连接”。在使用前,要进行网络连接的初始化。将“浏览器”打开,任意连接成功一个网站,也能完成“初始化网络连接”操作。
HTTP 头必须以两个 CRLF 结束,如 “GET http://www.baidu.com HTTP/1.1\r\n\r\n” 。否则,服务器将不予响应。
在 HTTP 头中包含 “Connection:close” 项时,表示终止连接。客户端发送终止连接的 HTTP 头后,最多只能再收到一条从服务器返回的响应。一条响应可分多次接收( Recv ),一次接收一部分。
有文章说在发送 HTTP GET 请求前,先要向代理服务器发送 CONNECT 请求,如 “CONNECT 10.0.0.172:80 HTTP/1.1\r\n\r\n” 或 “CONNECT www.baidu.com:80 HTTP/1.1\r\n\r\n”。但是,我使用的GPRS,在 Socket Connet 后,是直接发送 HTTP GET 请求的。如果正确,返回类似 “HTTP/1.1 200 OK, Success …” 的信息。信息包括 HTTP 头和 HTTP 体。HTTP 体包含了请求地址的 HTML 源码,长度在 HTTP 头里有定义。
Socket 的 connect、send、recv 等都是阻塞式方法。即在这些方法返回前,进程被阻塞,不能执行其它操作。使用 Socket 的 Select 方法可实现非阻塞( 可能要配合多线程使用 )。
源码下载:GPRSSocket.zip
源码简介:
本代码实现“网络连接的初始化”、“连接( 中国移动的 )代理服务器”、“向代理服务器发送 HTTP GET 请求”和“接收返回信息”。
源码中使用到的要 C++ 类:
( 注:如果连接 10.0.0.172:80 代理不行,可改为 10.0.0.172:9201 重试 )
运行环境:
开发环境:
WP-T-WAP 插件一直以来都有部分用户反映“首页的文章列表无法显示”。由于没有找到重现问题的方法,所以也没有真正得到解决。今天终于找到了重现方法,并得以解决。问题单如下:
1.问题描述
当用户通过 http://www.***.com/wap 的方法访问 WP-T-WAP 实现的WAP网站时,首页的文章列表区显示空白,文章列表没有正确显示;但是,菜单链接等其它内容能显示正常。
2.再现方法
今天早上,看到dzxr的文章,阐述 have_posts() 方法总是返回 false 的问题。其中提到了再现问题的方法:
将 WordPress 的固定链接设置为非默认值时(即启用rewrite),WP-T-WAP 中的 have_posts() 总是返回 false。WP2.3.* 英文版也存在同样问题。
3.问题原因
经过查错,发现出错的原因是系统函数自动将query数组的 “pagename” 变量的值设置成了相当页面的相对地址。这样就导致系统将相当页面当作是 “page” 类型(post_type)页面处理。而实现上,当前页面应该是 “post” 类型。
4.解决方案
经过测试,wp-blog-header.php 中的“wp();”行改为“wp(‘pagename=’);”可解决问题。但是不可能修改系统代码。所以,可以重新创建一个自己的 wp-blog-header.php 文件,或在自己页面构造类似代码。
下载WP-T-WAP 1.6:http://www.tanggaowei.com/2008/01/04/7.html
[ 标签: wp-t-wap ]为了搭建 Windows Mobile 5.0 的开发环境,要按顺序安装以下软件:
Microsoft ActiveSync 4.5
Microsoft Visual Studio 2005
Windows Mobile 5.0 Smartphone SDK
Windows Mobile 5.0 Emulator Images for Smartphone – CHS
在安装 Windows Mobile 5.0 Smartphone SDK 的时候出现了问题,安装程序一直停在“Status … ”信息处没反应。后来发现,在任务管理器里结束 wscript.exe 进程后,安装程序才能继续进行。但是,这样安装完了,在 Microsoft Visual Studio 2005 里还是找不到 Windows Mobile 5.0 的项目模板,还是不能正常使用。
看来问题就出在 wscript.exe 上。可能是防火墙挡住了 wscript.exe 进程的执行。经过一段摸索,发现是我的 Norton Antivirus 阻止了 wscript.exe 进程。要想正确安装,只有禁用 Norton Antivirus 的自动防护功能,方法如下:
在“Norton AntiVirus 选项”的“自动防护”将“启用自动防护”和“启动 Windows 时启动自动防护”的勾去掉,然后重启电脑。
如果第1个方法不行,就在“Norton AntiVirus 选项”->“系统”->“自动防护”->“排除”里,将“c:\windows\system32\wscript.exe”添加到列表中。
禁用 Norton Antivirus 的自动防护功能后,再重新安装 Windows Mobile 5.0 SDK。
手机的内存小,处理器速度慢。因此,手机软件要求有更小巧、更高性能的数据库系统支持。不久的将来,电脑软件将大规模移植到手机上,成为手机版的软件,以增强软件的竞争力,扩大软件的用户群。目前,能应用于手机的数据库系统还远不能承担这样重大的任务,以使得手机软件能像电脑软件一样应用自如。在快节奏的现代生活中,手机已越来越成为人们必不可少的随身工具。手机软件、手机数据库系统要坚信未来的前途,加快发展的步伐。
[ 标签: 数据库, 软件 ]