配置PPC模拟器网络环境,调试TCP/UDP套接字程序

最近学习PPC下的Socket编程,基本是按以下步骤进行程序调试


1
、在Windows XP下编写服务器端/客户端,直至测试程序通过。通过这个过程验证winsock的使用(APIMFC的包装类),确保语句代码不出错,当然选用的是wince4.2兼容的API(比如只使用seledt I/O模型)。调试时将开发机同时作为服务器和客户端进行测试,也使用Virtual PC模拟一个具有固定ip的客户机进行调试。

 

2、客户端移植到win ce,与XP下的服务器端进行联合测试,直至程序通过。win ce环境使用的PPC模拟器,主机是内网IP,外网无法访问。

使用TCP套接字的程序顺利通过了验证,第1步和第2步的运行都正常,这个过程不需要对PPC模拟器的环境进行任何配置。但在做UDP套接字程序的调试时,第1XP下的服务器端/客户端能正常运行,但第2步将客户端移植到win ce下时,发现作为服务端的PC机始终无法收到模拟器发出的UDP数据包。也不知道问题出在哪里,无奈之下,只有一步步测试。

首先使用简单的winsock API分别写一个服务端和客户端,服务端和客户端都运行于win ce平台,使用UDP套接字连接,来测试在模拟器同时充当服务端和客户端时,服务端是否能收到客户端发出的UDP数据包,以验证基本代码使用的正确与否(这也是挺无奈的测试,主要是担心是由于代码写错了,而不是环境的原因导致PC不能收到模拟器的UDP数据包)。测试结果是正常,在同一台模拟器上,服务端能够收到客户端发出的UDP数据包。

按照这个结果,PC不能收到模拟器的UDP数据包应该是由于模拟器无法访问到PC机的ip而引起,应该是网络环境的设置问题。在网上搜索资料,找到了子弹头的关于“配置Pocket PC 2003 SE设备仿真器的网络设置”的说明,主要是安装虚拟网卡,然后将模拟器的“NE2000 PCMCIA”网卡绑定到虚拟网卡,建立一个网络环境。这样模拟器应该能够访问到PCip。照着实施了一遍,发现有些地方情况不同,下面把我的配置过程完整介绍一下:

3.1下载并安装虚拟网卡驱动程序(http://www.microsoft.com/downloads/details.aspx?FamilyID=dc8332d6-565f-4a57-be8c-1d4718d3af65&DisplayLang=en)。以我的理解来看,这里安装的虚拟网卡和通常使用的虚拟光驱软件是不同的,它并不是虚拟出一块网卡出来,安装后在查看系统的硬件也未发现并未添加一块网卡。它应该是专用于模拟器,实现将模拟器的网卡和真实网卡进行绑定的一个中间驱动。

3.2绑定模拟器的网卡。启动模拟器,然后从模拟器的文件菜单中选择配置,在仿真程序属性对话框中切换到“网络”页,然后勾选启用 NE2000 PCMCIA 网络适配器并绑定到选项。在系统中只有一块真实网卡的情况下,这里并不能选择具体绑定到哪一个网卡,也印证了前面的猜测,虚拟网卡并不是象虚拟光驱那样为系统添加一个虚拟的硬件。

3.3配置模拟器网卡的参数。在模拟器内选择:开始-〉设置-〉连接-〉网卡,进入“配置网络适配器”。选择我的网卡连接到“默认 Internet配置”,然后再选择“NE2000 兼容 Ethernet 驱动程序,对网卡的ip、网关、dns进行具体配置。

3.4配置完成后,软重置模拟器,接下来就可以在主机中使用ping命令来测试与模拟器连通情况。可以更改模拟器的ip,更改后要软重置模拟器才能生效。

 

整个过程只需要上面这四步即可,不需要设置传输方式等操作。完成配置后,模拟器就有了一个固定ip,局域网内的机器也可以访问到模拟器的这个ip。通过这个ip,只要模拟器的网关和dns配置正确(设置成和主机一样),就可以直接上网,而不再需要借助ActiveSync了。

 

通过以上的配置,作为服务端的主机可以正常收到作为客户端的PPC模拟器发出的UDP数据包。

 

绑定绑定模拟器的网卡到真实网卡后,每次启动模拟器时,都会弹出一个提示,“要启用NE2000 PCMCIA网卡的仿真吗?这将使在仿真程序中运行的代码能够访问此网络”,点是即可。



现在设备已经俱全,一共有3pda(一台没有上网功能,一台支持 CDMA 1X,一台支持GPRS),也配好了cmwapcmnetcdma 1x三张上网卡,一切俱备,后面就等着开通一个外网ip,这样的话真实环境就全部建起来了。但我还是希望能在模拟器上完成日常的调试,因为这个最方便,不 用到处去插线,拿触笔点小小的pda屏幕。通过上面调试TCPUDP套接字的过程我也发现在模拟器环境下调试wince网络程序也是完全可能的。关于程序性能、真实网络环境的速度等可以在模拟器下调试通过后再集中放到实机上测试。

posted on 2007-04-22 21:28  yoyolion  阅读(6663)  评论(6编辑  收藏  举报