程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> JAVA編程 >> J2ME >> J2ME網絡編程實踐

J2ME網絡編程實踐

編輯:J2ME
這段時間幫朋友做了一個J2ME查詢公網數據庫的客戶端和服務端接口,接觸J2ME幾年了,一早就想向移動網絡這方面實踐一下。原理很簡單,由客戶端通過移動的的CMNET或者CMWAP代理網關向服務器提供的HTTP接口發送查詢請求,服務器接口接到請求後連接數據庫輸出查詢結果,移動網關再將結果通過GPRS傳送到客戶端。

  客戶端中特別注意的是由於訪問網絡的代碼會造成進程阻塞,所以訪問網絡的代碼必須得寫在一個獨立函數中,然後通過Thread或者Runnable的方法run()進行調用,而且測試的時候也很麻煩,這可能是由於我的測試機是NOKIA6230i的緣故。如果是通過CMNET連接的話可以直接在WTK2.2自帶的模擬器上測試,如果是通過CMWAP的話那就得真機測試,在NOKIA6230I(是CMWAP代理的)上測試的時候不知什麼原因總是連不上服務器,後來查到有文章說是因為CMWAP上的代理是要對目的IP鑒權的,也就是服務器得是移動商用的WAP服務器這類的合法IP才能通過CMWAP網關的鑒別。

  客戶端登陸後可進行查詢操作。登陸和查詢都得向服務器發送查詢請求,由於是通過HTTP傳送,發送和接收的數據都不用經過復雜的拆包解包,就直接用分隔符號,如","就可以組裝特定請求包了,服務器節口接收到請求之後,通過拆分請求包取得請求類型,如拆分後的請求包數組type[0].equals("login")既為用戶的登陸驗證請求,如type[0]="2"為某一特定數據的查詢請求。當中遇到這樣的一個問題,手機用戶登陸的時候,我們訪問HTTP接口的進程啟動,客戶端等待服務端的返回,這裡在等待的時候我用了Gauge,但是在客戶端也不知道服務器什麼時候返回,只能把Gauge時間設置為一個大概數字,不知道哪位看官對這問題有什麼好的解決方法不?先謝過~

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved