前幾日在進行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)