編輯:關於Android編程
android的網絡編程分為2種:基於socket的,和基於http協議的。
基於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來進行包裝是因為我們想要他們對基本數據類型的讀寫功能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);//設置是否用緩存
urlConn.setRequestProperty("Content-type","application/x-www-form-urlencoded");//設置content-type
獲得輸出流,便於想服務器發送信息。
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();
流程記錄就到此為止。
很多的Android入門程序猿來說對於Android自定義View,可能都是比較恐懼的,但是這又是高手進階的必經之路,所有准備在自定義View上面花一些功夫,多寫一些文章
本文結構1、功能介紹 2、總體設計 3、詳細設計 4、MaterialList自定義布局 5、總結1. 功能介紹1.1 簡介MaterialList是一個幫助Androi
本篇文章是繼續上篇文章的續篇。主要目的是:通過Service來執行圖片壓縮任務來討論如何使用Service,如何處理任務量大的並發問題。了解下Service大家都知道如果
一.ViewPager頁面滑動切換實現:借鑒了別人的源碼,還是比較容易實現的,而且這種效果還是經常使用的,特此記錄一下:效果圖:主界面: public clas