亚洲中字慕日产2020,大陆极品少妇内射AAAAAA,无码av大香线蕉伊人久久,久久精品国产亚洲av麻豆网站

資訊專欄INFORMATION COLUMN

Java Socket編程之TCP編程

i_garfileo / 1172人閱讀

摘要:編程之編程全套的基礎(chǔ)編程基礎(chǔ)及深入講解協(xié)議是面向連接的可靠的有序的以字節(jié)流的方式發(fā)送數(shù)據(jù),通過三次握手方式建立連接,形成傳輸數(shù)據(jù)的通道,在連接中進行大量數(shù)據(jù)的傳輸,效率會稍低中基于協(xié)議實現(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ù)的通道,在連接中進行大量數(shù)據(jù)的傳輸,效率會稍低

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

客戶端的Socket類

服務(wù)器端的ServerSocket類

Socket通信的步驟

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

服務(wù)器端:

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

   /**
         * 基于TCP協(xié)議的Socket通信,實現(xiàn)用戶登錄,服務(wù)端
         */
        //1、創(chuàng)建一個服務(wù)器端Socket,即ServerSocket,指定綁定的端口,并監(jiān)聽此端口
        ServerSocket serverSocket = new ServerSocket(10086);//1024-65535的某個端口
        //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)客戶端的請求
        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對象,指明需要連接的服務(wù)器的地址和端口號
? ? ? ? ? ? ? ? ② 連接建立后,通過輸出流想服務(wù)器端發(fā)送請求信息
? ? ? ? ? ? ? ? ③ 通過輸入流獲取服務(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)用多線程實現(xiàn)服務(wù)器與多客戶端之間的通信

? ? ? ? ? ? ? ① 服務(wù)器端創(chuàng)建ServerSocket,循環(huán)調(diào)用accept()等待客戶端連接
? ? ? ? ? ? ? ② 客戶端創(chuàng)建一個socket并請求和服務(wù)器端連接
? ? ? ? ? ? ? ③ 服務(wù)器端接受苦讀段請求,創(chuàng)建socket與該客戶建立專線連接
? ? ? ? ? ? ? ④ 建立連接的兩個socket在一個多帶帶的線程上對話
? ? ? ? ? ? ? ⑤ 服務(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)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/74377.html

相關(guān)文章

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

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

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

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

    The question 評論0 收藏0
  • PHP回顧socket編程

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

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

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

    fasss 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<