最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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 數(shù)據(jù)存儲(chǔ)方式有哪幾種

    Android 數(shù)據(jù)存儲(chǔ)方式有哪幾種

    android為數(shù)據(jù)存儲(chǔ)提供了五種方式,有SharedPreferences、文件存儲(chǔ)、SQLite數(shù)據(jù)庫(kù)、ContentProvider、網(wǎng)絡(luò)存儲(chǔ),對(duì)android數(shù)據(jù)存儲(chǔ)方式感興趣的朋友可以通過(guò)本文學(xué)習(xí)一下
    2015-11-11
  • Gradle編譯打包Android apk詳細(xì)介紹

    Gradle編譯打包Android apk詳細(xì)介紹

    這篇文章主要介紹了Gradle編譯打包Android apk詳細(xì)介紹的相關(guān)資料,理解Gradle構(gòu)建過(guò)程,解讀Android Gradle插件的配置,需要的朋友可以參考下
    2016-12-12
  • Mono for Android 實(shí)現(xiàn)高效的導(dǎo)航(Effective Navigation)

    Mono for Android 實(shí)現(xiàn)高效的導(dǎo)航(Effective Navigation)

    Android 4.0 系統(tǒng)定義了一系列的高效導(dǎo)航方式 (Effective Navigation), 主要包括標(biāo)簽、下拉列表、以及向上和返回等, 本文介紹如何用 Mono for Android 實(shí)現(xiàn)這些的導(dǎo)航方式
    2012-12-12
  • Android-Okhttp的使用解析

    Android-Okhttp的使用解析

    okhttp是Android6.0推出的網(wǎng)絡(luò)框架。這篇文章主要介紹了Android-Okhttp的使用解析,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-03-03
  • Android Zxing二維碼掃描圖片拉伸的解決方法

    Android Zxing二維碼掃描圖片拉伸的解決方法

    這篇文章主要為大家詳細(xì)介紹了Android Zxing二維碼掃描圖片拉伸的解決方法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2017-06-06
  • Android模仿實(shí)現(xiàn)閑魚首頁(yè)的思路與方法

    Android模仿實(shí)現(xiàn)閑魚首頁(yè)的思路與方法

    這篇文章主要給大家介紹了Android模仿實(shí)現(xiàn)閑魚首頁(yè)的思路與方法,文中通過(guò)示例代碼介紹的非常詳細(xì),并在文末給出了完整的代碼供大家參考學(xué)習(xí),需要的朋友們下面來(lái)一起看看吧。
    2017-04-04
  • Android微信分享大圖遇到的問(wèn)題的解決方法

    Android微信分享大圖遇到的問(wèn)題的解決方法

    這篇文章主要介紹了Android微信分享大圖遇到的問(wèn)題的解決方法,記錄了微信圖片分享出錯(cuò)的坑,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-09-09
  • android閱讀器長(zhǎng)按選擇文字功能實(shí)現(xiàn)代碼

    android閱讀器長(zhǎng)按選擇文字功能實(shí)現(xiàn)代碼

    本篇文章主要介紹了android閱讀器長(zhǎng)按選擇文字功能實(shí)現(xiàn)代碼,具有一定的參考價(jià)值,有興趣的可以了解一下
    2017-07-07
  • Android自定義View繪圖實(shí)現(xiàn)漸隱動(dòng)畫

    Android自定義View繪圖實(shí)現(xiàn)漸隱動(dòng)畫

    這篇文章主要為大家詳細(xì)介紹了Android自定義View繪圖實(shí)現(xiàn)漸隱動(dòng)畫,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-09-09
  • Android Retrofit 中文亂碼問(wèn)題的解決辦法

    Android Retrofit 中文亂碼問(wèn)題的解決辦法

    這篇文章主要介紹了Android Retrofit 中文亂碼問(wèn)題的解決辦法的相關(guān)資料,希望通過(guò)本文能幫助到大家,讓大家遇到這種問(wèn)題及時(shí)的解決,需要的朋友可以參考下
    2017-10-10

最新評(píng)論

郴州市| 和平区| 四川省| 汉沽区| 太原市| 滦平县| 柳林县| 稷山县| 宁武县| 永清县| 富蕴县| 施甸县| 南川市| 开平市| 镇远县| 罗山县| 临安市| 潜山县| 太原市| 隆昌县| 夏津县| 修水县| 垦利县| 涞水县| 宜君县| 保康县| 偃师市| 资兴市| 河西区| 滨州市| 桓仁| 东方市| 松原市| 沙田区| 万源市| 鱼台县| 遵化市| 玉林市| 吴川市| 甘泉县| 奉贤区|