




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
Android的網(wǎng)絡應用基于TCP協(xié)議的網(wǎng)絡通信TCP/IP通信協(xié)議是在通信的兩端各建立一個Socket,從而在通信的兩端之間形成網(wǎng)絡虛擬鏈路,兩端的程序就可以通過虛擬鏈路進行通信。Java使用Socket對象來代表兩端的通信接口,并通過Socket產(chǎn)生IO流來進行網(wǎng)絡通信。TCP協(xié)議基礎使用ServerSocket創(chuàng)建TCP服務器端使用Socket進行通信加入多線程使用ServerSocket創(chuàng)建TCP服務器端ServerSocket包含一個監(jiān)聽來自客戶端連接請求的方法。publicSocketaccept():如果接收到一個客戶端Socket的連接請求,accept()方法將返回一個與連接客戶端Socket對應的Socket(每個TCP連接有兩個Socket);否則該方法將一直處于等待狀態(tài),線程也被阻塞。為了創(chuàng)建ServerSocket對象,ServerSocket類提供了如下幾個構造器:publicServerSocket(intport):用指定的端口port來創(chuàng)建一個ServerSocket。publicServerSocket(intport,intbacklog):增加一個用來改變連接隊列長度的參數(shù)backlog。publicServerSocket(intport,intbacklog,InetAddresslocalAddress):在機器存在多個IP地址的情況下,允許通過localAddress這個參數(shù)來指定將ServerSocket綁定到指定的IP地址。當ServerSocket使用完畢后,應使用ServerSocket的close()方法來關閉該ServerSocket。通常情況下,服務器不應該只接收一個客戶端請求,而應該不斷地接收來自客戶端的所有請求,所以Java程序通常會通過循環(huán)不斷地調(diào)用ServerSocket的accept()方法。使用Socket進行通信利用Socket建立網(wǎng)絡連接的步驟:1、服務器監(jiān)聽:服務器端套接字處于等待連接的狀態(tài),實時監(jiān)控網(wǎng)絡狀態(tài),等待客戶端的連接請求。2、客戶端請求:指客戶端的套接字提出連接請求,要連接的目標是服務器端的套接字。3、連接確認:當服務器端套接字監(jiān)聽到客戶端套接字的連接請求時,就響應客戶端套接字的請求,建立一個新的線程,把服務器端套接字的描述發(fā)給客戶端,一旦客戶端確認了此描述,雙方就正式建立連接。該程序在運行中需要訪問互聯(lián)網(wǎng),需要在文件中授權該程序訪問網(wǎng)絡的權限,如圖所示:加入多線程服務器接收到客戶端連接之后,服務器向客戶端輸出一個字符串,而客戶端也只是讀取服務器的字符串后就退出了。當使用傳統(tǒng)BufferedReader的readLine()方法讀取數(shù)據(jù)時,當該方法成功返回之前,線程被阻塞,程序無法繼續(xù)執(zhí)行。下面的程序將實現(xiàn)多線程的通信:服務器端:兩個類,一個是創(chuàng)建ServerSocket監(jiān)聽的主類MyServer,另一個是負責處理每個Socket通信的ServerThread類。如圖的截圖是服務器端只負責接收客戶端Socket的連接請求,每當客戶端Socket連接到該ServerSocket之后,程序將對應Socket加入socketList集合中保存,并為該Socket啟動一條線程為該客戶端服務,該線程負責處理該Socket所有的通信任務。左圖中的服務器端線程類不斷讀取客戶端數(shù)據(jù),程序使用readFromClient()方法來讀取客戶端數(shù)據(jù),如果讀取數(shù)據(jù)過程中捕獲到IOException異常,則表明該Socket對應的客戶端Socket出現(xiàn)了問題。客戶端程序是一個Android應用,因此需要創(chuàng)建一個Android項目,這個Android應用的界面中包含兩個文本框:一個用于接收輸入,另一個用于顯示輸入信息;界面中還有一個發(fā)送按鈕,當單擊該按鈕時,程序向服務器發(fā)送輸入的信息(如圖)。定義一個線程處理Socket所對應的輸入流,主線程使用Socket連接到服務器之后,并啟動了ClientThread來處理該線程的Socket通信。并定義了一個Handler來處理來自
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025維修服務合同的樣本范文
- 農(nóng)村合作林業(yè)種植承包合同
- 美術設計師產(chǎn)品創(chuàng)新試題及答案
- 涼山某國企公開招聘派遣制工作人員(8人)筆試參考題庫附帶答案詳解
- 2025福建省輝穹工程咨詢有限公司招聘2人筆試參考題庫附帶答案詳解
- 2025河南鄭州空中絲路文化傳媒有限公司招聘6人筆試參考題庫附帶答案詳解
- 2025廣東省汕特建設集團有限公司招聘專業(yè)技術人才4人筆試參考題庫附帶答案詳解
- 2025年福建武夷旅游集團有限公司人才教育板塊自主招聘17人筆試參考題庫附帶答案詳解
- 2025年春季貴州磷化(集團)有限責任公司社會招聘139人筆試參考題庫附帶答案詳解
- 2025寧夏賀蘭山國家森林公園有限公司招募見習崗位人員11名筆試參考題庫附帶答案詳解
- 大學《思想道德與法治》期末考試復習題庫(含答案)
- 高三物理期中考試質量分析
- 發(fā)生用藥錯誤應急預案
- 《智能媒體傳播》教學大綱
- 室內(nèi)栓、滅火器檢查卡表格及要求
- 【制藥廢水預處理技術的發(fā)展綜述報告6000字(論文)】
- 《銷售技巧課件:提高銷售額的12種方法》
- 精神障礙社區(qū)康復服務投標方案
- 果蔬汁簡介介紹
- 神經(jīng)形態(tài)計算詳述
- 廣東御景木業(yè)有限公司年產(chǎn)木質門8萬套建設項目環(huán)境影響報告書
評論
0/150
提交評論