欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Android socket實(shí)現(xiàn)原理詳解 服務(wù)端和客戶端如何搭建

 更新時(shí)間:2017年08月09日 09:54:05   作者:Android_Sunshine_Sun  
這篇文章主要為大家詳細(xì)介紹了Android socket實(shí)現(xiàn)原理詳解,以及服務(wù)端和客戶端的搭建方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下

本文實(shí)例為大家分享了Android socket的實(shí)現(xiàn)原理,供大家參考,具體內(nèi)容如下

Socket套接字

是網(wǎng)絡(luò)上具有唯一標(biāo)識(shí)的IP地址和端口號(hào)組合在一起才能構(gòu)成唯一能識(shí)別的標(biāo)識(shí)符套接字。

socket實(shí)現(xiàn)的原理機(jī)制:

1、通信的兩端都有Socket

2、網(wǎng)絡(luò)通信其實(shí)就是Socket間的通信

3、數(shù)據(jù)在兩個(gè)Socket間通過(guò)IO傳輸

建立Socket(客戶端)和ServerSocket(服務(wù)器端)

建立連接后,通過(guò)Socket中的IO流進(jìn)行數(shù)據(jù)的傳輸

關(guān)閉socket

同樣,客戶端與服務(wù)器端是兩個(gè)獨(dú)立的應(yīng)用程序。

服務(wù)器端思路

1、建立服務(wù)器端的socket服務(wù),需要一個(gè)端口
2、服務(wù)端沒(méi)有直接的操作,而是通過(guò)accept方法獲取客戶端對(duì)象,在通過(guò)獲取到的客戶端對(duì)象的流和客戶端進(jìn)行通信
3、通過(guò)客戶端獲取流對(duì)象的方法,讀取數(shù)據(jù)或者寫入數(shù)據(jù)
4、如果服務(wù)完成,需要關(guān)閉客戶端,然后關(guān)閉服務(wù)器,但是,一般會(huì)關(guān)閉客戶端,不會(huì)關(guān)閉服務(wù)器,因?yàn)榉?wù)端是一直提供服務(wù)的

服務(wù)端實(shí)現(xiàn)代碼

// 創(chuàng)建服務(wù)器端
    ServerSocket server = new ServerSocket(5555);

    while(true){
    // 等待連接
    Socket accept = server.accept();

    OutputStream outputStream = accept.getOutputStream();
    outputStream.write("你好,我是服務(wù)器!\r\n".getBytes());
    outputStream.flush();

    // 讀取數(shù)據(jù)
    InputStream inputStream = accept.getInputStream();

    BufferedReader reader = new BufferedReader(new InputStreamReader(
        inputStream));
    System.out.println("服務(wù)器:" + reader.readLine());

     outputStream.close();
     inputStream.close();
    }


客戶端思路

1、建立客戶端的Socket服務(wù),并明確要連接的服務(wù)器。
2、如果連接建立成功,就表明,已經(jīng)建立了數(shù)據(jù)傳輸?shù)耐ǖ?就可以在該通道通過(guò)IO進(jìn)行數(shù)據(jù)的讀取和寫入.該通道稱為Socket流,Socket流中既有讀取流,也有寫入流.
3、通過(guò)Socket對(duì)象的方法,可以獲取這兩個(gè)流
4、通過(guò)流的對(duì)象可以對(duì)數(shù)據(jù)進(jìn)行傳輸
5、如果傳輸數(shù)據(jù)完畢,關(guān)閉資源

客戶端實(shí)現(xiàn)代碼

 //創(chuàng)建套接字 確定要連接的服務(wù)器ip與端口口
    Socket socket=new Socket("172.17.23.77",5555);


    InputStream inputStream = socket.getInputStream();
    BufferedReader br=new BufferedReader(new InputStreamReader(inputStream));
    String readLine = br.readLine();
    System.out.println("客戶端:"+readLine);

    //向服務(wù)器發(fā)送消息
    OutputStream outputStream = socket.getOutputStream();
    outputStream.write("你好\r\n".getBytes());
    outputStream.flush();

    outputStream.close();
    inputStream.close();

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Android優(yōu)化查詢加載大數(shù)量的本地相冊(cè)圖片

    Android優(yōu)化查詢加載大數(shù)量的本地相冊(cè)圖片

    本文介紹了Android優(yōu)化查詢加載大數(shù)量的本地相冊(cè)圖片,可以方便的照片的查詢,,感興趣的小伙伴們可以參考一下。
    2016-10-10
  • Android Studio 運(yùn)行按鈕灰色的完美解決方法

    Android Studio 運(yùn)行按鈕灰色的完美解決方法

    今天新建項(xiàng)目的時(shí)候突然發(fā)現(xiàn)編譯后運(yùn)行按鈕為灰色,今天小編給大家?guī)?lái)了Android Studio 運(yùn)行按鈕灰色的完美解決方法,非常不錯(cuò),對(duì)大家的需要或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧
    2020-10-10
  • Android特效之水波紋的實(shí)現(xiàn)

    Android特效之水波紋的實(shí)現(xiàn)

    今天我們主要講一講如何通過(guò)自定義View(以下簡(jiǎn)稱WaveView)實(shí)現(xiàn) "咻咻咻" 式的水波紋擴(kuò)散效果,感興趣的小伙伴們可以參考學(xué)習(xí)。
    2016-08-08
  • 詳解Android應(yīng)用開發(fā)中Intent的作用及使用方法

    詳解Android應(yīng)用開發(fā)中Intent的作用及使用方法

    這篇文章主要介紹了Android應(yīng)用開發(fā)中Intent的作用與用法,包括如何激活A(yù)ctivity組件與Intent的投遞等,需要的朋友可以參考下
    2016-03-03
  • Android編程之ActionBar Tabs用法實(shí)例分析

    Android編程之ActionBar Tabs用法實(shí)例分析

    這篇文章主要介紹了Android編程之ActionBar Tabs用法,結(jié)合實(shí)例形式分析了ActionBar Tabs的功能及Tab切換不同的Fragment的相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2017-03-03
  • Android 中為什么要用Fragment.setArguments(Bundle bundle)來(lái)傳遞參數(shù)

    Android 中為什么要用Fragment.setArguments(Bundle bundle)來(lái)傳遞參數(shù)

    這篇文章主要介紹了Android 中為什么要用Fragment.setArguments(Bundle bundle)來(lái)傳遞參數(shù),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下
    2017-01-01
  • Android更新UI的四種方法詳解

    Android更新UI的四種方法詳解

    大家都知道由于性能要求,android要求只能在UI線程中更新UI,要想在其他線程中更新UI,我大致總結(jié)了4種方式,有需要的朋友們可以參考借鑒。
    2016-09-09
  • Android開發(fā)之自定義View(視圖)用法詳解

    Android開發(fā)之自定義View(視圖)用法詳解

    這篇文章主要介紹了Android開發(fā)之自定義View(視圖)用法,結(jié)合實(shí)例形式分析了Android自定義視圖的實(shí)現(xiàn)方法與使用注意事項(xiàng),需要的朋友可以參考下
    2016-10-10
  • 簡(jiǎn)單實(shí)現(xiàn)Android本地音樂(lè)播放器

    簡(jiǎn)單實(shí)現(xiàn)Android本地音樂(lè)播放器

    這篇文章主要為大家詳細(xì)介紹了如何簡(jiǎn)單實(shí)現(xiàn)Android本地音樂(lè)播放器,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • Android頁(yè)面中可編輯與不可編輯切換的實(shí)現(xiàn)

    Android頁(yè)面中可編輯與不可編輯切換的實(shí)現(xiàn)

    這篇文章主要給大家介紹了關(guān)于在Android頁(yè)面中可編輯與不可編輯切換的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-07-07

最新評(píng)論