最近學習
ppc下的
socket
程式設計,基本是按以下步驟進行程式除錯 1
、在windows xp
下編寫伺服器端
/客戶端,直至測試程式通過。通過這個過程驗證
winsock
的使用(api
和mfc
的包裝類
),確保語句**不出錯,當然選用的是
wince4.2
相容的api
(比如只使用
seledt i/o
模型)。除錯時將開發機同時作為伺服器和客戶端進行測試,也使用
virtual pc
模擬乙個具有固定
ip的客戶機進行除錯。
2、客戶端移植到
win ce
,與xp
下的伺服器端進行聯合測試,直至程式通過。
win ce
環境使用的
ppc模擬器,主機是內網
ip,外網無法訪問。
使用tcp
套接字的程式順利通過了驗證,第
1步和第
2步的執行都正常,這個過程不需要對
ppc模擬器的環境進行任何配置。但在做
udp套接字程式的除錯時,第1步
xp下的伺服器端
/客戶端能正常執行,但第
2步將客戶端移植到
win ce
下時,發現作為服務端的
pc機始終無法收到模擬器發出的
udp資料報。也不知道問題出在**,無奈之下,只有一步步測試。
首先使用簡單的
winsock api
分別寫乙個服務端和客戶端,服務端和客戶端都執行於
win ce
平台,使用
udp套接字連線,來測試在模擬器同時充當服務端和客戶端時,服務端是否能收到客戶端發出的
udp資料報,以驗證基本**使用的正確與否(這也是挺無奈的測試,主要是擔心是由於**寫錯了,而不是環境的原因導致
pc不能收到模擬器的
udp資料報)。測試結果是正常,在同一臺模擬器上,服務端能夠收到客戶端發出的
udp資料報。
按照這個結果,
pc不能收到模擬器的
udp資料報應該是由於模擬器無法訪問到
pc機的
ip而引起,應該是網路環境的設定問題。在網上搜尋資料,找到了子彈頭的關於「
配置pocket pc 2003 se裝置**器的網路設定
」的說明,主要是安裝虛擬網絡卡,然後將模擬器的「
ne2000 pcmcia
」網絡卡繫結到虛擬網絡卡,建立乙個網路環境。這樣模擬器應該能夠訪問到pc的
ip。照著實施了一遍,發現有些地方情況不同,下面把我的配置過程完整介紹一下:
)。以我的理解來看,這裡安裝的虛擬網絡卡和通常使用的虛擬光碟機軟體是不同的,它並不是虛擬出一塊網絡卡出來,安裝後在檢視系統的硬體也未發現並未新增一塊網絡卡。它應該是專用於模擬器,實現將模擬器的網絡卡和真實網絡卡進行繫結的乙個中間驅動。
3.2繫結模擬器的網絡卡。啟動模擬器,然後從模擬器的檔案選單中選擇配置,在
「**程式屬性
」對話方塊中切換到「網路」頁,然後勾選「啟用
ne2000 pcmcia
網路介面卡並繫結到
」選項。在系統中只有一塊真實網絡卡的情況下,這裡並不能選擇具體繫結到哪乙個網絡卡,也印證了前面的猜測,虛擬網絡卡並不是象虛擬光碟機那樣為系統新增乙個虛擬的硬體。
3.3配置模擬器網絡卡的引數。在模擬器內選擇:開始-〉設定-〉連線-〉網絡卡,進入「配置網路介面卡」。選擇我的網絡卡連線到「預設
internet
配置」,然後再選擇
「ne2000
相容ethernet
驅動程式
」,對網絡卡的
ip、閘道器、
dns進行具體配置。
3.4配置完成後,軟重置模擬器,接下來就可以在主機中使用
ping
命令來測試與模擬器連通情況。可以更改模擬器的
ip,更改後要軟重置模擬器才能生效。
整個過程只需要上面這四步即可,不需要設定傳輸方式等操作。完成配置後,模擬器就有了乙個固定
ip,區域網內的機器也可以訪問到模擬器的這個
ip。通過這個
ip,只要模擬器的閘道器和
dns配置正確
(設定成和主機一樣
),就可以直接上網,而不再需要借助
activesync了。
通過以上的配置,作為服務端的主機可以正常收到作為客戶端的
ppc模擬器發出的
udp資料報。
繫結繫結模擬器的網絡卡到真實網絡卡後,每次啟動模擬器時,都會彈出乙個提示,「要啟用
ne2000 pcmcia
網絡卡的**嗎?這將使在**程式中執行的**能夠訪問此網路」,點是即可。
現在裝置已經俱全,一共有3臺
pda(
一台沒有上網功能,一台支援
cdma 1x
,一台支援
gprs
),也配好了
cmwap
、cmnet
、cdma 1x
三張上網絡卡,一切俱備,後面就等著開通乙個外網
ip,這樣的話真實環境就全部建起來了。但我還是希望能在模擬器上完成日常的除錯,因為這個最方便,不
用到處去插線,拿觸筆點小小的
pda螢幕。通過上面除錯
tcp和
udp套接字的過程我也發現在模擬器環境下除錯
wince
網路程式也是完全可能的。關於程
序效能、真實網路環境的速度等可以在模擬器下除錯通過後再集中放到實機上測試。
移動開發 網路流量精簡攻略
作為一名移動開發者,在過去的幾年裡也做過不少的專案,今天就來寫一篇淺薄的節省網路流量的文章,希望這篇文章對所有的移動開發者,以及介面的服務端開發者都有幫助。為什麼要精簡?why 1.節省使用者的流量。因為使用者的流量可能是要付費的,為使用者節省流量是每乙個移動開發者應當牢牢記住的原則之一 2.提高網...
開發網路常識
網際網路開發的常用概念 子網掩碼 與ip位址配合使用判斷兩台計算機是否位於同乙個子網路.dhcp協議 每乙個子網路中,有一台計算機負責管理本網路的所有ip位址,它叫做 dhcp伺服器 當新的計算機加入網路,必須向 dhcp伺服器 傳送乙個 dhcp請求 資料報,申請ip位址和相關的網路引數.然後dh...
Python開發 網路基礎
tcp與udp的區別 tcp 傳送控制協議 transmission control protocol tcp是傳輸層的乙個協議,基於ip協議,用於傳輸類似http的資訊。tcp協議是面向連線的協議,通過三次握手機制,盡量保證鏈結的可靠性 tcp鏈結需要三次握手,釋放需要四次揮手。udp 使用者資料...