前几日在进行PC到WinCE平台的程序移植时,由于以前没有接触过,遇到不少问题,到今天终于全部基本上解决了,记载一下,
让别人少走点弯路.
一开始的时候,我的程序是通过USB口与电脑同步的,既然是同步,我就想当然地以为PDA拥有与PC一样的IP地址,在写程序时发现,通过TCP与PC进行连接时,即使没有TCP服务器程序,PDA的TCP连接也能成功!这可是一个要命的问题,写Socket程序的时候出错了不可怕,还可以通过GetLastError来获得错误代码从而排除错误,但是这次错误都没有,也就不能排除错误了.通过截获TCP的报文,可以发现从PDA发出的TCP报文是有的,可是绝对没有返回的报文,从而证明TCP连接事实上是肯定不成功的,但是API的返回值却说TCP连接成功了,真是FT...
到这里遇到第一个难题,然后就是不停的测试,测试一天之后发现,虽然PDA和没有TCP服务器的PC能连接成功(事实上是不成功的),但当PC端真正拥有TCP服务器程序时,程序是能真正连接成功的!而且可以收发报文,也就是说,在通过USB与PC相连的PDA上,EVC的API不能识别出是否能真正连接成功.通过TCP服务器程序的日志察看,PDA的IP地址是192.168.55.101,而在PC上ping 192.168.55.101,是ping不通的,并且,PC不能往这个IP地址发送报文.
上网查找相关信息发现,192.168.55.101是WinCE内置的IP地址.得出的结论是,开发WinCE的Socket程序,不能通过USB同步的方式来进行,因为这样的话,其地址永远是192.168.55.101,至于WINce能通过同步来上网,估计应该是微软自己的内部调用吧,或许是我还不知道.
(转
http://blog.sina.com.cn/s/blog_4cd3b57101000hhr.html)