Android上如何搭建web伺服器?
03-09
你說的應該是http伺服器吧?我們採用的方案是nanohttp開源組件來實現的。組件本身提供了一個SimpleWebService,用於提供文件下載能力:
### 2 解析http請求,處理,並發送應答。從ServerSocket.accpet獲得Socket.Socket.getInputStream();從而獲取輸入流。
推薦閱讀:
也就是你可以在Pc上下載你手機上的文件。
你可以基於這個類進行相應的修改。> 圖片來自百度圖片,侵刪![](http://h.hiphotos.baidu.com/zhidao/wh%3D450%2C600/sign=6b7043c5adc27d1ea57333c02ee58158/e61190ef76c6a7ef71545947f4faaf51f3de6665.jpg)***
講解一下它的主要原理:### 1 基於socket,socketservice進行編程;創建服務端socket的時候需要一個埠和ip地址。假定我們的服務運行於wifi環境下,那麼採用以下方法來獲取ip地址。```java
WifiManager wm = (WifiManager) context.getSystemService(WIFI_SERVICE);DhcpInfo di = wm.getDhcpInfo();long getewayIpL = di.ipAddress;```通過將輸入流過濾和包裝,讀取內容到內存數組中,然後利用Reader讀取數組(通過ByteArrayInputStream)。
利用Reader的token讀取能力,將數據分解為頭域和實體部分。交給解析器(自己編寫)然後得到需要填充到應答報文的數據,發送應答。***可以用於做什麼:### 1 簡單的web伺服器例如展示一些簡單的靜態網頁,當然也可以結合資源下載器來提供js,css的下載,共同組建一個動態的web頁面。當然,由於js,css的地址和你伺服器的ip地址和埠有關。並且沒有域名和DNS,所以你只能在生成html文件的時候動態的去生成這一部分內容。### 2 Json內容提供器可直接在該伺服器上為特定的url,配置一個應答,應答中包含Json數據。這有利於客戶端快速開發功能。因為服務端同學可能有自己的排期,而客戶端可能需要驗證一些功能,但是這個時候服務端還沒有開發完成,使用這個小型的內容提供伺服器,能夠很好的解決這個需求。### 3 內容代理將收到的內容進行轉發。可以設置延時,用於測試某些app在網路環境差的情況下的一些表現情況。推薦閱讀: