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