色偷偷偷亚洲综合网另类,亚洲欧美另类在线观看,欧美午夜激情在线,久久久精品一区

當前位置:首頁 > 嵌入式培訓 > 嵌入式學習 > 講師博文 > Android中基于TCP協(xié)議的網(wǎng)絡通信

Android中基于TCP協(xié)議的網(wǎng)絡通信 時間:2018-09-27      來源:未知

一、Android網(wǎng)絡簡介

Android與服務器的通信方式主要有兩種,一種是Http通信,另一種是Socket通信。

HTTP通信:Android中內(nèi)置HttpClient,這樣可以發(fā)方便的發(fā)送Http請求并獲取Http響應,簡化了與網(wǎng)站之間的交互。

Socket通信:Android還支持JDK本身的TCP、UDP網(wǎng)絡通信的API,可以使用Java中提供的ServerSocket、Socket類,來建立基于TCP/IP協(xié)議的網(wǎng)絡通信。(本章主要講解TCP協(xié)議編程的相關內(nèi)容)也可以使用DatagramSocket、Datagrampacket、MulticastSocket來建立基于UDP協(xié)議的網(wǎng)絡通信。

兩者的區(qū)別:兩者的大差異在于,Http連接使用的是“請求—響應方式”,即在請求時建立連接通道,當客戶端向服務器發(fā)送請求后,服務器端才能向客戶端返回數(shù)據(jù)。而Socket通信則是在雙方建立起連接后就可以直接進行數(shù)據(jù)的傳輸,在連接時可實現(xiàn)信息的主動推送,而不需要每次由客戶端想服務器發(fā)送請求。

本文引用地址://m.17old.cn/emb/Column/7502.html

二、TCP協(xié)議基礎

TCP/IP通信協(xié)議是一種可靠的網(wǎng)絡協(xié)議,它在通信的兩端各建立一個Socket,從而在通信的兩端形成網(wǎng)絡虛擬鏈路。Java使用Socket對象來代表兩端的通信接口,并通過Socket產(chǎn)生IO流來進行通信。

IP協(xié)議是Internet上使用的一個關鍵協(xié)議,它的全稱是Internet Protocol,即Internet協(xié)議,通常簡稱IP協(xié)議。通過使用IP協(xié)議,使Internet成為一個允許連接不同類型的計算機和不同操作系統(tǒng)的網(wǎng)絡。

要使兩臺計算機彼此之間進行通信,必須使兩臺計算機使用同一種“語言”,IP協(xié)議只保證計算機能發(fā)送和接收分組數(shù)據(jù)。IP協(xié)議負責將消息從一個主機傳送到另一個主機,消息在傳送的過程中被分割成一個個小包。

TCP協(xié)議被稱作一種端對端協(xié)議,這是因為它為兩臺計算機之間的連接起了重要作用:當一臺計算機需要與另一臺遠程計算機連接時,TCP協(xié)議會讓它們建立一個連接:用于發(fā)送和接收數(shù)據(jù)的虛擬鏈路。

通過這種重發(fā)機制,TCP協(xié)議向應用程序提供可靠地通信連接,使它能夠自動適應網(wǎng)上的各種變化,即使在Internet暫時出現(xiàn)堵塞的情況下,TCP也能夠保證通信的可靠。

雖然IP和TCP這兩個協(xié)議的功能不盡相同,也可以分開單獨使用,但它們是在同一時期作為一個協(xié)議來設計的,并且在功能上也是互補的,只有兩者結(jié)合,才能保證Internet在復雜的環(huán)境下正常運行,凡是要連接到Internet的計算機,都必須同時安裝和使用這兩個協(xié)議,因此在實際中常把這兩個協(xié)議統(tǒng)稱為TCP/IP協(xié)議。

三、如何使用ServerSocket創(chuàng)建TCP服務器端:

Java中能接收其他通信實體連接請求的類是ServerSocket,ServerSocket對象用于監(jiān)聽來自客戶端的Socket連接,若沒有連接則它將一直處于等待狀態(tài)。其中監(jiān)聽來自客戶端請求的方法:Socket accept()。該方法若收到一個客戶端Socket的連接請求,該方法將返回一個與連接客戶端Socket對應的Socket,否則將阻塞等待。代碼如:

ServerSocket socket = new ServerSocket(21300);

While(true){

Socket s = socket.accept();

}

四、使用Socket進行通信

客戶端經(jīng)常使用Socket來連接到指定服務器,Socket類提供構(gòu)造器連接到指定遠程主機和遠程端口的構(gòu)造器,如:

Socket socket = new Socket(“192.168.1.11”,8000);

創(chuàng)建完畢Socket之后就可以進行通信了。Socket提供了InputStream getInputStream()和OutputStream getOutputStream兩個方法來獲取輸入流和輸出流進行數(shù)據(jù)的讀寫操作。例如:

while(true){

Socket socket = serversocket.accept();

OutputStream os = socket.getOutputStream();

os.write(“你好,我是服務器”.getBytes(“utf-8”));

os.close();

socket.close();

}

此時,就可以進行服務器與客戶端的讀寫操作了。但是考慮到簡單C/S聊天室應用的實現(xiàn),只了解這個是不夠的,需要加上多線程的才能使代碼變得完善。

上一篇:Qt For Android --手機上也可以跑Qt程序啦!

下一篇:配置Unity安卓開發(fā)環(huán)境

熱點文章推薦
華清學員就業(yè)榜單
高薪學員經(jīng)驗分享
熱點新聞推薦
前臺專線:010-82525158 企業(yè)培訓洽談專線:010-82525379 院校合作洽談專線:010-82525379 Copyright © 2004-2022 北京華清遠見科技集團有限公司 版權(quán)所有 ,京ICP備16055225號-5京公海網(wǎng)安備11010802025203號

回到頂部

色偷偷偷亚洲综合网另类,亚洲欧美另类在线观看,欧美午夜激情在线,久久久精品一区
主站蜘蛛池模板: 亚洲无亚洲人成网站77777| 日韩精品高清在线观看| 日韩视频―中文字幕| 深夜福利一区二区| 欧美成人激情图片网| 亚洲国产成人91精品| 久久久精品2019中文字幕神马| 黄色成人在线免费| 日韩美女视频中文字幕| 成人欧美一区二区三区在线湿哒哒| 亚洲国产91色在线| 欧美日韩性生活视频| 亚洲永久免费观看| 欧美大片免费观看| 国产精品视频大全| 精品美女国产在线| 亚洲国产又黄又爽女人高潮的| 欧美性开放视频| 亚洲欧美精品在线| 成人免费福利视频| 91精品国产一区| 欧美日韩综合视频| 亚洲人成电影网站色…| 国产剧情日韩欧美| 欧美中文字幕在线播放| 久久视频中文字幕| 一区二区三区视频免费| 成人中文字幕在线观看| 欧亚精品中文字幕| 欧美亚洲在线观看| 欧美精品成人在线| 韩国三级电影久久久久久| 精品毛片网大全| 久久久伊人日本| 久久久在线视频| 欧美激情精品久久久久久黑人| 日韩亚洲欧美中文在线| www.亚洲天堂| 精品成人av一区| 午夜精品久久久久久99热| 欧美精品videossex88|