j2ee與j2me通信

<1>MIDP支持Http1.1 協議, 使用Get 和 Post與網絡進行通信,產生Http報頭和數據, 爲了使報文清晰,在http請求是應包含content-type屬性

 

<2>:j2ee與j2me連接原理

 

       j2ee與j2me通信框架

 

 

解釋: 

 

     在客戶端,用戶的手機需要與Internet進行連接,可以採用GPRS、Wi-fi或者3G網絡等方式,用戶只需下載(如使用OTA技術)客戶端MIDlet程序,安裝到手機上就可以與服務器進行連接併發出訪問請求;Web服務器使用Servlet容器來處理客戶端的連接和請求,然後再將這些請求發送到企業級服務器上,企業級服務器使用EJB進行會話,處理請求,並通過JDBC連接到數據庫系統上;數據庫系統根據SQL查詢語句,將生成的查詢結果數據集發送回企業級服務器;企業級服務器把接收到的信息提交給Web服務器,Web服務器再通過HTTP將信息返回給客戶端;最後,客戶端MIDlet將查詢結果顯示在用戶的手機屏幕上。所有的訪問並不直接訪問後臺的應用資源和數據資源,而是通過中間層進行訪問,這樣既可以保證後臺數據的安全性,又可以通過中間層的調度保證系統性能和事務的一致性。

 

 

 

<3>:  j2me聯網的兩種方法  (1) cmnet   (2): cmwap  : 

 

          (1) cmnet跟電腦上聯網沒什麼區別,  用如下代碼就OK了

 

          try { 
                http = (HttpConnection) Connector.open(url); 
          } catch (IOException e) { 
          
              e.printStackTrace(); 
          } 

 

       (2) cmwap聯網: 

 

      對於一些機型,直接連網會聯不上,  這是因爲你的機子不支持cmnet聯網方式

 

      也許你會發現不經過修改,直接連接的方式也可以在一些cmwap的設備上(只支持cmwap的手機多爲低端手機) 也可以運行,

      這是因爲在底層進行了一些轉換. 如果沒有轉換的話,你必須要經過手動轉換.

 

      假設你原來要請求的頁面是:htpp://www.testwap.com/test/try.jsp
      那麼你會用這句話連接
     HttpConnection httpConnection = (HttpConnection)Connector.open(“http://www.testwap.com/test/try.jsp”);
 
     但是爲了轉成CNWAP的聯網形式 你必須這麼寫
            HttpConnection httpConnection = (HttpConnection)Connector.open(“http://10.0.0.172:80/test/try.jsp”);
   接着再寫
      httpConnection.setRequestProperty("X-Online-Hostwww.testwap.com");
      httpConnection.setRequestProperty("Accept","*/*");
這樣就ok了

 

 

 分析有以下幾種可能。
1.移動那邊可能對於CNNET來說,幾乎是對所有的協議進行開放。比如(Socket,Http)跟所有端口。
2.對於CNWAP,我估計只開放http協議以及80端口,其他的都封閉,也就是CNWAP只能訪問http協議。
   由於我測試的IP地址進行測試,所以它可以直接找到。對於非IP地址我沒測試果。也許CNWAP不能解釋域名也說不定,這點我就不清楚了。

 

 

 

 

 

 

 

 

 

 

 

 

發佈了35 篇原創文章 · 獲贊 0 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章