android網路程式設計關於Socket和http協議
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網路程式設計關於Socket和http協議
android的網路程式設計分為2種:基於socket的,和基於http協議的。 基於socket的用法 伺服器端: 先啟動一個伺服器端的socket ServerSocket svr = new ServerSocket(8989); 開始偵
Linux網路程式設計---詳解HTTP協議
HTTP 簡介 HTTP協議是Hyper Text Transfer Protocol(超文字傳輸協議)的縮寫,是用於從全球資訊網(WWW:World Wide Web )伺服器傳輸超文字到本地瀏覽器的傳送協議。。 HTTP是一個基於TCP/IP通訊協議來傳遞資料(HTML 檔案,
網路程式設計概述及Http協議
(一)概述 本節開始我們來學習Android網路程式設計相關的一些東西:Android端網路程式設計要幹嘛?Http協議 的學習,使用自帶扣腳Json解析類解析Json,XML解析的幾種常用方式,HttpUrlConnection和 HttpClient的使
Android 網路(一) HTTP協議
前言 現如今,網路無處不在。對於Android開發者而言,免不了涉及到對網路的訪問。於是挖個坑= = ,介紹一下Android下關於網路程式設計的方方面面,本文將講述HTTP協議的一些必備知識。 HTTP協議簡介 超文字傳輸協議(HTTP,HyperT
Android網路程式設計之socket和http程式設計的區別
HTTP為短連線 Http協議是建立在TCP協議之上的一種應用。它與TCP連線不同之處在於,客戶端每次請求都需要伺服器返回響應,在請求結束後,會主動釋放連線,從建立連線到關閉連線的過程稱為“一次連線”。由於HTTP每次請求都會釋放連線,因為
Android網路程式設計(一)HTTP協議原理
1.HTTP簡介 HTTP是一個屬於應用層的面向物件的協議,由於其簡捷、快速的方式,適用於分散式超媒體資訊系統。它於1990年提出,經過幾年的使用與發展,得到不斷地完善和擴充套件。 HTTP協議的主要特點 支援C/S(客戶/伺服器)模式。簡單快速:客戶向伺服器請求服
基於Http協議的Android網路程式設計
寫在前面的話:好一陣子沒寫部落格了,心裡有點慚愧。在這期間我主要做了兩件事:一、之前在研究Android的過程中比較吃力,主要是Java的一些基礎知識掌握得還不太好,於是近半個月惡補了一下Java基礎,我發現自己連多型!多型!多型!(重要的事說三遍)這個面向物件
Android網路程式設計(Http協議篇)
前言 這篇文章是這個系列的基礎之一,應用絕大多數不會避開對網路進行訪問,雖然現在已經有很多的開源庫如:voley,retrofit等幫助我們來輕而易舉的訪問網路,但是我們仍要去了解網路訪問的原理,這也是一個優秀開發人員所必備的知識。這篇文章是這個系列的基礎篇,
C#.網路程式設計 Socket基礎(一)Socket TCP協議 實現端到端(伺服器與客戶端)簡單字串通訊
簡介: 本章節主要討論了Socket的入門知識,還未針對Socket的難點問題(比如TCP的無訊息邊界問題)展開討論,往後在其他章節中進行研究。 注意點: 伺服器(比如臺式電腦)的IP為1.1.1.2,那麼客戶端(其他裝置,比如手機,Ipad)連線的一定是
C#.網路程式設計 Socket基礎(三) 基於WinForm系統Socket TCP協議 實現端到端(伺服器與客戶端).txt.word.png等不同型別檔案傳輸
一、簡介: 前面的兩篇介紹了字串傳輸、圖片傳輸: 其實,本文針對Socket基礎(二)進一步完成,以便可以進行多種檔案傳輸。 二、基於不同的流(檔案流、記憶體流、網路等)讀寫。 1、圖片傳輸 方法一:(在客戶端用檔案流傳送(即將圖片寫到檔案流去,以便傳送),
C#.網路程式設計 Socket基礎(四) WPF系統Socket TCP協議 伺服器與客戶端 不同型別檔案傳輸,同時解決UI執行緒與工作執行緒的卡頓問題
一、簡介 雖然,本文的前面幾篇文章在WinForm中實現了Socket TCP協議 伺服器與客戶端 不同型別檔案傳輸,詳情見 但是,卻沒有在WPF中實現 Socket TCP協議 伺服器與客戶端 不同型別檔案傳輸。因此,本文將描述如何在WPF中實現該功能。
Android中的TCP/IP協議,Socket,Http協議間的關係
前提:本片文章的名字叫做"Android開發中的TCP/IP協議,Socket程式設計",其實TCP/IP協議是一種網路協議,並不是在Android中才有的,也不只是在java中有,其他的開發語言中同樣也可以使用TCP/IP協議進行網路程式設計。之所以這麼說是因為在不久的以前
Android網路程式設計(二)ConnectivityManager和NetworkInfo詳解
一. ConnectivityManager詳解 概要 ConnectivityManager是網路連線相關的管理器,它主要用於查詢網路狀態並在網路發生改變時發出狀態變化通知。這個類主要負責的下列四個方面: 1. 監控網路狀態(包
Android網路程式設計和多執行緒程式設計
Android對網路程式設計提供3中介面,即:Java介面,Apache介面,Android介面。 -- Android三種網路通訊方式/網路通訊機制: 1.標準Java介面 java.net.*提供與聯網有關的類,包括流、資料包套接字(socket)、Internet協
網路程式設計Socket的阻塞和非阻塞IO
網路應用程式一個很重要的工作是傳輸資料。傳輸資料的過程不一樣取決於使用哪種“交通工具“,但是傳輸的方式都是一樣的:都是以位元組碼傳輸。JAVA開發網路程式傳輸資料的過程和方式是被抽象了的,我們不需要關注底層介面,只需要使用Java API 或其他網路框架就能達到資料傳輸的目
Android 網路程式設計之同步,非同步,阻塞和非阻塞
同步:函式沒有執行完不返回,執行緒被掛起; 阻塞:沒有收完資料函式不返回,執行緒也被掛起; 非同步:函式立即返回,通過事件或是訊號通知呼叫者; 非阻塞:函式立即返回,通過select通知呼叫者 同步:函式沒有執行完不返回,執行緒被掛起 阻塞:沒有收完資料函式不返回,執行緒也被掛起 非同步:函
計算機網路學習1:HTTP協議中URL和URI的區別
國際慣例膜dalao,dalao部落格讓我學習到了新姿勢 首先,先來了解一下這些單詞的全稱: HTTP = Hyper Text Transfer Protocol(超文字傳輸協議) URI
Linux下Socket網路程式設計send和recv使用注意事項
1.send函式 ssize_t send( SOCKET s, const char *buf, size_t len, int flags ); (1)send先比較待發送資料的長度len和套接字s的傳送緩衝的長度, 如果len大於s的傳送緩衝區的長度,
Android網路程式設計的Socket通訊總結
建立伺服器端的步驟: 1,指定埠例項化一個ServerSocket 2,呼叫ServerSocket的accept方法等待連線期間阻塞 3,獲取位於底層的Socket流進行讀寫操作 4,將資料封裝成流 5,對Socket進行讀寫 6,關閉流 建立客戶端的步驟: 1,通過IP
Android網路程式設計之TCP/IP的Socket、ServerSocket模式
TCP/IP是一種協議,一種面向連線的、可靠的協議。Socket僅僅是針對TCP、UDP網路介面來封裝,不涉及上層協議。TCP與UDP的傳輸特性不一樣,適用於不同型別的應用層協議,TCP有連線,延時較長,能保證服務質量。UDP無連線,應用程式需要進行資料分包、延時短,效率高