前幾日在進(jìn)行PC到WinCE平臺的程序移植時,由于以前沒有接觸過,遇到不少問題,到今天終于全部基本上解決了,記載一下,
讓別人少走點(diǎn)彎路.
一開始的時候,我的程序是通過USB口與電腦同步的,既然是同步,我就想當(dāng)然地以為PDA擁有與PC一樣的IP地址,在寫程序時發(fā)現(xiàn),通過TCP與PC進(jìn)行連接時,即使沒有TCP服務(wù)器程序,PDA的TCP連接也能成功!這可是一個要命的問題,寫Socket程序的時候出錯了不可怕,還可以通過GetLastError來獲得錯誤代碼從而排除錯誤,但是這次錯誤都沒有,也就不能排除錯誤了.通過截獲TCP的報文,可以發(fā)現(xiàn)從PDA發(fā)出的TCP報文是有的,可是絕對沒有返回的報文,從而證明TCP連接事實(shí)上是肯定不成功的,但是API的返回值卻說TCP連接成功了,真是FT...
到這里遇到第一個難題,然后就是不停的測試,測試一天之后發(fā)現(xiàn),雖然PDA和沒有TCP服務(wù)器的PC能連接成功(事實(shí)上是不成功的),但當(dāng)PC端真正擁有TCP服務(wù)器程序時,程序是能真正連接成功的!而且可以收發(fā)報文,也就是說,在通過USB與PC相連的PDA上,EVC的API不能識別出是否能真正連接成功.通過TCP服務(wù)器程序的日志察看,PDA的IP地址是192.168.55.101,而在PC上ping 192.168.55.101,是ping不通的,并且,PC不能往這個IP地址發(fā)送報文.
上網(wǎng)查找相關(guān)信息發(fā)現(xiàn),192.168.55.101是WinCE內(nèi)置的IP地址.得出的結(jié)論是,開發(fā)WinCE的Socket程序,不能通過USB同步的方式來進(jìn)行,因為這樣的話,其地址永遠(yuǎn)是192.168.55.101,至于WINce能通過同步來上網(wǎng),估計應(yīng)該是微軟自己的內(nèi)部調(diào)用吧,或許是我還不知道.
(轉(zhuǎn)
http://blog.sina.com.cn/s/blog_4cd3b57101000hhr.html)