注意:这篇文章有点过时,主要基于SDKS60 v1(Symbian 操作系统6.1)。以后版本的SDK会更简单,几乎是直接连接(我将会很快提供一篇相关文章)。
一般来说,开发Symbian应用软件时要尽量将Symbian模拟器连接到Internet上。如果要在调试一个在线应用软件就必须要做到这点。但这并不如所期待的那样简单(可以在Symbian DevNet 新闻组或Nokia论坛中查找所有相关主题)。这里仅介绍对我来说有效的解决方法(摘录于Nokia论坛中的几个帖子)。
配置:
一台基于Windows 2000和两个串行端口的PC机。
Nokia Series 60 SDK v1.0。
Palm Desktop软件(Palm Synchronisation被激活)。
其余几个你不需要知道名字的软件。
模拟器的问题则是:
需要有Windows TCP/IP栈,用于连接Interner。
绕过该栈直接连接到COM1。
解决方法包括重新定向来自COM1端口的数据到两一个COMx端口,重新获得来自COMx的内容并利用TCP栈发送其到Internet。
重新定向COM1内容到COMx
有两种方法来解决:
利用一个null-modem 线缆,用其连接COM1和COMx。大部反台式机带有两个串行端口,所以可以考虑该方法。通常在该情况下COMx为COM2。
利用虚拟串行端口管理器。这种软件添加了一些虚拟COM端口给PC机上。这样可将它们连在一起。如今市面上还没有太多解决方法,最著名的(至少在Symebian论坛中)是VSPD-XP3来自于Eltima software.但是可惜的是一个单机用户许可需要$99。
我的方法不需要null-modem 线缆,因为是掌上设备,它需要craddle连接到COM2端口以便synchronisation和文件传输。为此需要购买VSPD-XP3。可通过下图了解到如何配置COM1端口,使其重新定向到COM3。

如果不想让Symbian模拟器使用COM1端口,需要修改CommDB数据库并选择另一个COM端口。关于这方面在《通过改变COM端口来连接Internet》中有解释。
重新路由COMX数据到Internet
到上述步骤,仅仅完成一般工作。但是令人高兴的是这也是最重要的部分。该方法的第二个部分被隐藏在Symbian SDK子目录中。现在必须运行mRouterLite,该文件存放在C:/Symbian/6.1/Series 60/Epoc32/Release/Winc/urel目录下。

注意:当它已是被VSPD-XP3连接到COM1的端口时,COM3已被选中。一旦点击连接按钮,显示就会变成如下:

如果看到该显示,则证明一切正常,模拟器已连接到Internet上。"Negotiating with hardware..."这句话的显示非常重要。如果有一掌上设备,一部 Symbian电话,一红外线接口或是一PDA(如使用该方法,则应该在这些情况下,否则至少为第二个方法),synchronisation软件可能在干涉该处理。
一般的:
如果为Palm用户,需要关掉Synchronisation软件(右击Sync图标退出Sync程序)。
如果为Symbian设备,需要关掉mRouter软件,它被捆绑在软件套装中:打开任务管理器(CTRL-ALT-DEL)并结束mRouterRuntime.exe。
现在退出mRouterLite软件后重启:现在应该一切正常了(如果没有,再重新登陆,开启VSPD-XP3,结束mRouterRuntime,重启mRouterLite。如果这样仍不能工作,我不能帮助你了,可以在论坛中发帖子,也许不仅你一个人遇到该问题)。
运行你的程序
现在可以运行你的程序了。开启时,选择NT RAS连接,然后可以在mRouterLite窗口中看到一些日志(在端口表中开启的端口号)。
没有编辑模拟器中NT RA的配置也是非常重要的(甚至不要进入配置菜单:没有修改就不能够退出。)如果是这种情况,则需要重新安装SDK(或者更简单根快捷的方法是利用原始cdbv2.dat替换掉C:\Symbian\6.1\Series60\Epoc32\Wins\c\system\data 中的cdbv2.dat文件,该文件包含这些设置)。
其他方法
Symbian v7.0的用户可以享受Symbian发布的Winsock library(查看这里,但是该方法不可用于Symbian OS v6.1。Peroon已经开发PrnESock来替代原始的Symbian ESock DLL,其可直接从模拟器连接到Internet(没有利用null-modem 线缆和VSXPD方法)。一有效版本(但有权限限制)可在他们网站中下载)。
此文为开发视界翻译转载者请注明出处否则追究法律责任