首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> Java 程式設計 >> J2ME

J2ME 網絡編程實戰經驗談:CMNET/CMWAP、執行緒與封包設計

     編輯:J2ME

專案背景

開發一套 J2ME 查詢公網資料庫的客戶端/伺服端介面。客戶端透過 CMNET 或 CMWAP 代理閘道,向伺服端 HTTP 介面發送查詢請求,伺服端查詢資料庫回傳結果,經 GPRS 傳回手機。

關鍵技術點與坑點

1. 網路操作必須在獨立執行緒

網路 I/O 會阻塞,若在事件執行緒執行會凍結 UI。採用 Thread 或 Runnable 包裝網路邏輯。

2. CMNET vs CMWAP 測試差異

  • CMNET:可直接在 WTK 2.2 模擬器測試。
  • CMWAP:需真機測試(筆者用 Nokia 6230i)。曾遇連不上伺服器,查資料發現 CMWAP 代理會對目標 IP 鑑權,僅允許移動商用 WAP 伺服器等合法 IP 通過。

3. 簡易封包協議設計

HTTP 傳輸無需複雜拆包,採用分隔符(如逗號)組裝請求:type,param1,param2...。伺服端 split(",") 解析,type[0] 判斷業務("login"、"2" 等)。

4. 進度條 (Gauge) 的無奈

登入/查詢等待伺服器回應時想顯示進度,但無法預知回應時間,只能設定大概秒數。有更好方案歡迎分享!

心得

J2ME 網絡開發核心在於:執行緒隔離、理解運營商閘道差異、設計輕量封包協議。真機測試不可省略,模擬器無法完全模擬 CMWAP 環境。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved