Android中Socket通信的實(shí)現(xiàn)方法概述
本文實(shí)例簡(jiǎn)述了Android中Socket通信的實(shí)現(xiàn)方法,具體內(nèi)容如下:
一、socket通信概述
通俗的來說套接字(socket)是通信的基石,是支持TCP/IP協(xié)議的網(wǎng)絡(luò)通信的基本操作單元。它是網(wǎng)絡(luò)通信過程中端點(diǎn)的抽象表示,包含進(jìn)行網(wǎng)絡(luò)通信必須的五種信息:連接使用的協(xié)議,本地主機(jī)的IP地址,本地進(jìn)程的協(xié)議端口,遠(yuǎn)地主機(jī)的IP地址,遠(yuǎn)地進(jìn)程的協(xié)議端口。
應(yīng)用層通過傳輸層進(jìn)行數(shù)據(jù)通信時(shí),TCP會(huì)遇到同時(shí)為多個(gè)應(yīng)用程序進(jìn)程提供并發(fā)服務(wù)的問題。多個(gè)TCP連接或多個(gè)應(yīng)用程序進(jìn)程可能需要通過同一個(gè)TCP協(xié)議端口傳輸數(shù)據(jù)。為了區(qū)別不同的應(yīng)用程序進(jìn)程和連接,許多計(jì)算機(jī)操作系統(tǒng)為應(yīng)用程序與TCP/IP協(xié)議交互提供了套接字(Socket)接口。應(yīng)用層可以和傳輸層通過Socket接口,區(qū)分來自不同應(yīng)用程序進(jìn)程或網(wǎng)絡(luò)連接的通信,實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)牟l(fā)服務(wù)。
總之一句話,socket是對(duì)TCP/IP協(xié)議的封裝。
二、使用Socket步驟(client):
1、建立Socket(Tcp)連接
在Java中建立Socket連接是相當(dāng)容易的事情,使用類庫(kù)提供的Socket類就可以實(shí)現(xiàn)。
Socketclient=null; //表示客戶端
client=newSocket("localhost",5000);
2、發(fā)送數(shù)據(jù)
PrintStreamout=newPrintStream(socket.getOutputStream()); //發(fā)送數(shù)據(jù),PrintStream最方便
3、接收返回信息
buf=newBufferedReader(newInputStreamReader(socket.getInputStream()));; //一次性接收完成讀取Socket的輸入流,在其中讀出返回信息
4、關(guān)閉Socket
Socket.close();
三、補(bǔ)充:
Socketsever端(非多線程實(shí)現(xiàn))
ServerSocketserver=null; //定義ServerSocket類
Socketclient=null; //表示客戶端
PrintStreamout=null; //打印流輸出最方便
server=newServerSocket(8888); //服務(wù)器在8888端口上監(jiān)聽
System.out.println("服務(wù)器運(yùn)行,等待客戶端連接。");
client=server.accept(); //得到連接,程序進(jìn)入到阻塞狀態(tài)
Stringstr="helloworld"; //表示要輸出的信息
out=newPrintStream(client.getOutputStream());
out.println(str); //向客戶端輸出信息
client.close();
server.close();
- Android Socket通信詳解
- Android編程之客戶端通過socket與服務(wù)器通信的方法
- python服務(wù)器與android客戶端socket通信實(shí)例
- android利用websocket協(xié)議與服務(wù)器通信
- Android中使用socket通信實(shí)現(xiàn)消息推送的方法詳解
- 詳解Android 基于TCP和UDP協(xié)議的Socket通信
- Android Socket通信實(shí)現(xiàn)簡(jiǎn)單聊天室
- Android中socket通信的簡(jiǎn)單實(shí)現(xiàn)
- Android開發(fā)中Socket通信的基本實(shí)現(xiàn)方法講解
- Android Socket通信的簡(jiǎn)單實(shí)現(xiàn)
相關(guān)文章
Java 3種方法實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換
這篇文章主要介紹了Java 3種方法實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換,幫助大家利用Java處理數(shù)據(jù),感興趣的朋友可以了解下2020-09-09
Java使用正則表達(dá)式實(shí)現(xiàn)找出數(shù)字功能示例
這篇文章主要介紹了Java使用正則表達(dá)式實(shí)現(xiàn)找出數(shù)字功能,結(jié)合實(shí)例形式分析了Java針對(duì)數(shù)字的匹配查找及非數(shù)字替換操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下2017-03-03
java 結(jié)合jQuery實(shí)現(xiàn)跨域名獲取數(shù)據(jù)的方法
下面小編就為大家?guī)硪黄猨ava 結(jié)合jQuery實(shí)現(xiàn)跨域名獲取數(shù)據(jù)的方法。小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2016-05-05
PHP Laravel實(shí)現(xiàn)文件下載功能
本文重點(diǎn)給大家介紹Laravel實(shí)現(xiàn)文件下載功能的實(shí)例代碼,需要的朋友參考下吧2017-09-09
Java 動(dòng)態(tài)代理的多種實(shí)現(xiàn)方式
動(dòng)態(tài)代理實(shí)際上是JVM在運(yùn)行期動(dòng)態(tài)創(chuàng)建class字節(jié)碼并加載的過程。本文講述了Java 動(dòng)態(tài)代理的多種實(shí)現(xiàn)方式,感興趣的朋友可以選擇適合自己的方式2021-06-06
解決mybatis plus 分頁(yè)查詢有條數(shù),total和pages都是零的問題
這篇文章主要介紹了解決mybatis plus 分頁(yè)查詢有條數(shù),total和pages都是零的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2020-11-11

