android上建立http服務器

  1. 首先對於socket,http這種客戶端和服務器通訊的理解
http協議本身自己的底層是通過建立socket實現的。
        socket本身是位於傳輸層的,那麼對於http這種應用層協議的通訊原理是怎樣的呢?
        1)http協議底層實現socket建立連接之後,對socket之間通訊的內容定義爲http的格式,這樣雙方就
        可以約定一些參數信息,實現雙方通訊。
        2)自定義協議:
          通過對http協議的實現方式,我們可以自己定義一套協議,其中包含我們自己的參數信息,放在要傳送的內容的頭部
          並進行解析,就實現了我們自己的需求。

        例如筆者在進行辦公簽到的程序中可以自己定義一套協議:
         Sign:sucess
         Sign_url:http:www.xxxx.com/xxxxxxxx

  1. 下面附上http服務器源碼

  1. ServerSocket serverSocket;
  2. while (true) {//一直監聽  
  3.             Socket socket = null;  
  4.             try {  
  5.                 socket = serverSocket.accept();//線程阻塞,有請求才繼續執行
  6.                 
  7.                 BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));//獲取請求輸入流
  8.                 StringBuilder stringBuilder = new StringBuilder();  
  9.                 String line = null;  
  10.                 while ((line = bufferedReader.readLine()) != null  
  11.                         && !line.equals("")) {//得到請求的內容,注意這裏作兩個判斷非空和""都要,只判斷null會有問題  
  12.                     stringBuilder.append(line).append("/n");  
  13.                 }
  14.                 bufferedReader.close();
  15.                 socket.close(); 
  16. }
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章