Android中Socket通信的實(shí)現(xiàn)方法概述
本文實(shí)例簡(jiǎn)述了Android中Socket通信的實(shí)現(xiàn)方法,具體內(nèi)容如下:
一、socket通信概述
通俗的來(lái)說(shuō)套接字(socket)是通信的基石,是支持TCP/IP協(xié)議的網(wǎng)絡(luò)通信的基本操作單元。它是網(wǎng)絡(luò)通信過(guò)程中端點(diǎn)的抽象表示,包含進(jìn)行網(wǎng)絡(luò)通信必須的五種信息:連接使用的協(xié)議,本地主機(jī)的IP地址,本地進(jìn)程的協(xié)議端口,遠(yuǎn)地主機(jī)的IP地址,遠(yuǎn)地進(jìn)程的協(xié)議端口。
應(yīng)用層通過(guò)傳輸層進(jìn)行數(shù)據(jù)通信時(shí),TCP會(huì)遇到同時(shí)為多個(gè)應(yīng)用程序進(jìn)程提供并發(fā)服務(wù)的問(wèn)題。多個(gè)TCP連接或多個(gè)應(yīng)用程序進(jìn)程可能需要通過(guò)同一個(gè)TCP協(xié)議端口傳輸數(shù)據(jù)。為了區(qū)別不同的應(yīng)用程序進(jìn)程和連接,許多計(jì)算機(jī)操作系統(tǒng)為應(yīng)用程序與TCP/IP協(xié)議交互提供了套接字(Socket)接口。應(yīng)用層可以和傳輸層通過(guò)Socket接口,區(qū)分來(lái)自不同應(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編程之客戶端通過(guò)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)文章
Redis緩存,泛型集合與json字符串的相互轉(zhuǎn)換實(shí)例
這篇文章主要介紹了Redis緩存,泛型集合與json字符串的相互轉(zhuǎn)換實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-07-07關(guān)于SHA算法原理與常用實(shí)現(xiàn)方式
這篇文章主要介紹了關(guān)于SHA算法原理與常用實(shí)現(xiàn)方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-08-08Spring中byName和byType的區(qū)別及說(shuō)明
這篇文章主要介紹了Spring中byName和byType的區(qū)別及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-12-12Java創(chuàng)建樹形結(jié)構(gòu)算法實(shí)例代碼
本篇文章主要介紹了Java創(chuàng)建樹形結(jié)構(gòu)算法實(shí)例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。2017-01-01在SpringBoot中實(shí)現(xiàn)線程池并行處理任務(wù)的方法詳解
在使用Spring Boot開發(fā)應(yīng)用程序時(shí),我們經(jīng)常需要處理一些耗時(shí)的任務(wù),例如網(wǎng)絡(luò)請(qǐng)求、數(shù)據(jù)庫(kù)操作或者其他需要花費(fèi)一定時(shí)間的計(jì)算任務(wù),本文將介紹如何在Spring Boot中使用線程池來(lái)實(shí)現(xiàn)任務(wù)的并行處理2023-06-06java 刪除數(shù)組元素與刪除重復(fù)數(shù)組元素的代碼
在java中刪除數(shù)組元素與過(guò)濾重復(fù)數(shù)組元素我們都會(huì)需要去遍歷數(shù)組然后根據(jù)我們?cè)O(shè)置的值或方法進(jìn)行去除數(shù)組2013-10-10Java高效實(shí)現(xiàn)電商產(chǎn)品排序?qū)崙?zhàn)
這篇文章主要為大家介紹了Java高效實(shí)現(xiàn)電商產(chǎn)品排序?qū)崙?zhàn),有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-11-11