Android 網路編程教程,基於socket和http協議執行個體

來源:互聯網
上載者:User

基於socket的用法

伺服器端:

先啟動一個伺服器端的socket    

ServerSocket svr = new ServerSocket(8989);

開始偵聽請求

Socket s = svr.accept();

取得輸入和輸出

DataInputStream dis = new DataInputStream(s.getInputStream());

DataOutputStream dos = new DataOutputStream(s.getOutputStream());

Socket 的互動通過流來完成,即是說傳送的位元組流,因此任何檔案都可以在上面傳送。誰開啟的記得要關上。

用DataInputStream/DataOutputStream來進行封裝是因為我們想要他們對基礎資料型別 (Elementary Data Type)的讀寫功能readInt(),writeInt(),readUTF(),writeUTF()等等。

用戶端:

發起一個socket串連

Socket s = new Socket("192.168.1.200",8989);

取得輸入和輸出

DataInputStream dis = new DataInputStream(s.getInputStream());

DataOutputStream dos = new DataOutputStream(s.getOutputStream());

之後就可以相互連信了。誰開啟的記得要關上。

基於Http協議

一般是發送請求到某個應用伺服器。此時需要用到HttpURLConnection

先取得HttpURLConnection

urlConn = new URL("http://www.google.com").openConnection();

設定標誌 

urlConn.setDoOutput(true);  urlConn.setDoInput(true);

//post的情況下需要設定DoOutput為true

urlConn.setRequestMethod("POST");

urlConn.setUseCache(false);//設定是否用緩衝

//設定content-type

urlConn.setRequestProperty("Content-type","application/x-www-form-urlencoded");

獲得輸出資料流,便於想伺服器發送資訊。

DataOutputStream dos = new DataOutputStream(urlConn.getOutputStream());

望流裡面寫請求參數

dos.writeBytes("name="+URLEncoder.encode("chenmouren","gb2312");

dos.flush();dos.close();//發送完後馬上關閉。

獲得輸入資料流,取資料

BufferReader reader = new BufferedReader(new InputStreamReader(urlConn.getInputStream()));

reader.readLine();//用 !=null來判斷是否結束

reader.close();

讀完了記得關閉connection  urlConn.disconnect();

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.