国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Java Socket編程之TCP編程

i_garfileo / 1070人閱讀

摘要:編程之編程全套的基礎(chǔ)編程基礎(chǔ)及深入講解協(xié)議是面向連接的可靠的有序的以字節(jié)流的方式發(fā)送數(shù)據(jù),通過三次握手方式建立連接,形成傳輸數(shù)據(jù)的通道,在連接中進(jìn)行大量數(shù)據(jù)的傳輸,效率會(huì)稍低中基于協(xié)議實(shí)現(xiàn)網(wǎng)絡(luò)通信的類客戶端的類服務(wù)器端的類通信的步驟創(chuàng)建和打

Java Socket編程之TCP編程

全套的:https://www.yuque.com/shizhiy...
基礎(chǔ):https://blog.51cto.com/wangdy/1588379
Java Socket編程基礎(chǔ)及深入講解:https://www.cnblogs.com/yiwangzhibujian/p/7107785.html

TCP協(xié)議是面向連接的、可靠的、有序的、以字節(jié)流的方式發(fā)送數(shù)據(jù),通過三次握手方式建立連接,形成傳輸數(shù)據(jù)的通道,在連接中進(jìn)行大量數(shù)據(jù)的傳輸,效率會(huì)稍低

Java中基于TCP協(xié)議實(shí)現(xiàn)網(wǎng)絡(luò)通信的類

客戶端的Socket類

服務(wù)器端的ServerSocket類

Socket通信的步驟

? ? ? ? ? ? ? ? ① 創(chuàng)建ServerSocket和Socket
? ? ? ? ? ? ? ? ② 打開連接到Socket的輸入/輸出流
? ? ? ? ? ? ? ? ③ 按照協(xié)議對(duì)Socket進(jìn)行讀/寫操作
? ? ? ? ? ? ? ? ④ 關(guān)閉輸入輸出流、關(guān)閉Socket

服務(wù)器端:

? ? ? ? ? ? ? ?① 創(chuàng)建ServerSocket對(duì)象,綁定監(jiān)聽端口
? ? ? ? ? ? ? ? ② 通過accept()方法監(jiān)聽客戶端請(qǐng)求
? ? ? ? ? ? ? ? ③ 連接建立后,通過輸入流讀取客戶端發(fā)送的請(qǐng)求信息
? ? ? ? ? ? ? ? ④ 通過輸出流向客戶端發(fā)送鄉(xiāng)音信息
? ? ? ? ? ? ? ? ⑤ 關(guān)閉相關(guān)資源
**

   /**
         * 基于TCP協(xié)議的Socket通信,實(shí)現(xiàn)用戶登錄,服務(wù)端
         */
        //1、創(chuàng)建一個(gè)服務(wù)器端Socket,即ServerSocket,指定綁定的端口,并監(jiān)聽此端口
        ServerSocket serverSocket = new ServerSocket(10086);//1024-65535的某個(gè)端口
        //2、調(diào)用accept()方法開始監(jiān)聽,等待客戶端的連接
        Socket socket = serverSocket.accept();
        //3、獲取輸入流,并讀取客戶端信息
        InputStream is = socket.getInputStream();
        InputStreamReader isr = new InputStreamReader(is);
        BufferedReader br = new BufferedReader(isr);
        String info = null;
        while ((info = br.readLine()) != null) {
            System.out.println("我是服務(wù)器,客戶端說:" + info);
        }
        socket.shutdownInput();//關(guān)閉輸入流
        //4、獲取輸出流,響應(yīng)客戶端的請(qǐng)求
        OutputStream os = socket.getOutputStream();
        PrintWriter pw = new PrintWriter(os);
        pw.write("歡迎您!");
        pw.flush();


        //5、關(guān)閉資源
        pw.close();
        os.close();
        br.close();
        isr.close();
        is.close();
        socket.close();
        serverSocket.close();

客戶端:

? ? ? ? ? ? ? ? ① 創(chuàng)建Socket對(duì)象,指明需要連接的服務(wù)器的地址和端口號(hào)
? ? ? ? ? ? ? ? ② 連接建立后,通過輸出流想服務(wù)器端發(fā)送請(qǐng)求信息
? ? ? ? ? ? ? ? ③ 通過輸入流獲取服務(wù)器響應(yīng)的信息
? ? ? ? ? ? ? ? ④ 關(guān)閉響應(yīng)資源?

//客戶端
//1、創(chuàng)建客戶端Socket,指定服務(wù)器地址和端口
Socket socket =newSocket("localhost",10086);
//2、獲取輸出流,向服務(wù)器端發(fā)送信息
OutputStream os = socket.getOutputStream();//字節(jié)輸出流
PrintWriter pw =newPrintWriter(os);//將輸出流包裝成打印流
pw.write("用戶名:admin;密碼:123");
pw.flush();
socket.shutdownOutput();
//3、獲取輸入流,并讀取服務(wù)器端的響應(yīng)信息
InputStream is = socket.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
String info = null;
while((info=br.readLine())!null){
 System.out.println("我是客戶端,服務(wù)器說:"+info);
}

//4、關(guān)閉資源
br.close();
is.close();
pw.close();
os.close();
socket.close();

應(yīng)用多線程實(shí)現(xiàn)服務(wù)器與多客戶端之間的通信

? ? ? ? ? ? ? ① 服務(wù)器端創(chuàng)建ServerSocket,循環(huán)調(diào)用accept()等待客戶端連接
? ? ? ? ? ? ? ② 客戶端創(chuàng)建一個(gè)socket并請(qǐng)求和服務(wù)器端連接
? ? ? ? ? ? ? ③ 服務(wù)器端接受苦讀段請(qǐng)求,創(chuàng)建socket與該客戶建立專線連接
? ? ? ? ? ? ? ④ 建立連接的兩個(gè)socket在一個(gè)多帶帶的線程上對(duì)話
? ? ? ? ? ? ? ⑤ 服務(wù)器端繼續(xù)等待新的連接 ? ??

//服務(wù)器線程處理
//和本線程相關(guān)的socket
Socket socket =null;
//
public serverThread(Socket socket){
this.socket = socket;
}

publicvoid run(){
//服務(wù)器處理代碼
}

//============================================
//服務(wù)器代碼
ServerSocket serverSocket =newServerSocket(10086);
Socket socket =null;
int count =0;//記錄客戶端的數(shù)量
while(true){
socket = serverScoket.accept();
ServerThread serverThread =newServerThread(socket);
 serverThread.start();
 count++;
System.out.println("客戶端連接的數(shù)量:"+count);
}

[鏈接]()

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/74377.html

相關(guān)文章

  • Java Socket編程常識(shí)網(wǎng)絡(luò)基礎(chǔ)知識(shí)

    摘要:如地址端口號(hào)組成了所謂的,是網(wǎng)絡(luò)上運(yùn)行的程序之間雙向通信鏈路的終結(jié)點(diǎn),是和的基礎(chǔ)套接字網(wǎng)絡(luò)上具有唯一標(biāo)識(shí)的地址和端口組合在一起才能構(gòu)成唯一能識(shí)別的標(biāo)識(shí)符套接字。 更多物聯(lián)網(wǎng)高并發(fā)編程知識(shí)請(qǐng)移步:https://www.yuque.com/shizhiy... Java Socket編程之常識(shí)網(wǎng)絡(luò)基礎(chǔ)知識(shí) 網(wǎng)絡(luò)基礎(chǔ)知識(shí)(參考計(jì)算機(jī)網(wǎng)絡(luò))? 《TCP/IP協(xié)議棧及OSI參考模型詳解》? ...

    Jeff 評(píng)論0 收藏0
  • Android網(wǎng)絡(luò)編程Socket

    摘要:面向字節(jié)流流,指的是流入到進(jìn)程或從進(jìn)程流出的字符序列。即收到連接信息后向返回確認(rèn)信息第三次握手客戶端收到服務(wù)器的報(bào)文段,并向服務(wù)器發(fā)送報(bào)文段。 前言 Socket的使用在 Android網(wǎng)絡(luò)編程中非常重要 今天我將帶大家全面了解 Socket 及 其使用方法 目錄 showImg(https://segmentfault.com/img/remote/14600000113508...

    The question 評(píng)論0 收藏0
  • PHP回顧socket編程

    摘要:如果你想體驗(yàn)原味編程,用開頭的比較適合否則建議使用流函數(shù)。有關(guān)流的知識(shí),請(qǐng)參考本人之前的博文回顧之流。接下來我們用流函數(shù)實(shí)現(xiàn)一個(gè)簡(jiǎn)單的客戶端和服務(wù)端。流函數(shù)中的和兩個(gè)函數(shù)是我們想要的。本文目的是簡(jiǎn)要介紹中的編程,行文到此已經(jīng)達(dá)到目的。 轉(zhuǎn)載請(qǐng)注明文章出處: https://tlanyan.me/php-review... PHP回顧系列目錄 PHP基礎(chǔ) web請(qǐng)求 cookie w...

    tomorrowwu 評(píng)論0 收藏0
  • Android網(wǎng)絡(luò)編程8源碼解析OkHttp中篇[復(fù)用連接池]

    摘要:構(gòu)造函數(shù)默認(rèn)空閑的最大連接數(shù)為個(gè),的時(shí)間為秒通過構(gòu)造函數(shù)可以看出默認(rèn)的空閑的最大連接數(shù)為個(gè),的時(shí)間為秒。實(shí)例化實(shí)例化是在實(shí)例化時(shí)進(jìn)行的在的構(gòu)造函數(shù)中調(diào)用了省略省略緩存操作提供對(duì)進(jìn)行操作的方法分別為和幾個(gè)操作。 1.引子 在了解OkHttp的復(fù)用連接池之前,我們首先要了解幾個(gè)概念。 TCP三次握手 通常我們進(jìn)行HTTP連接網(wǎng)絡(luò)的時(shí)候我們會(huì)進(jìn)行TCP的三次握手,然后傳輸數(shù)據(jù),然后再釋放連接...

    fasss 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<