国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

《Java SE》網(wǎng)絡(luò)編程基礎(chǔ)知識歸納。

這篇具有很好參考價值的文章主要介紹了《Java SE》網(wǎng)絡(luò)編程基礎(chǔ)知識歸納。。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報違法"按鈕提交疑問。

目錄

一、網(wǎng)絡(luò)基本介紹

1、什么是網(wǎng)絡(luò)通信?

2、網(wǎng)絡(luò)

3、IP地址

4、域名

5、網(wǎng)絡(luò)通信協(xié)議

6、Socket

二、TCP網(wǎng)絡(luò)通信編程

?1、應(yīng)用實(shí)例1(字節(jié)流)

2、應(yīng)用實(shí)例2(字節(jié)流)

3、應(yīng)用實(shí)例3(字符流)

4、netstat 指令

三、UDP網(wǎng)絡(luò)通信編程?

1、基本介紹

2、基本流程

3、應(yīng)用實(shí)例


一、網(wǎng)絡(luò)基本介紹

1、什么是網(wǎng)絡(luò)通信?

????????兩臺設(shè)備之間通過網(wǎng)絡(luò)實(shí)現(xiàn)數(shù)據(jù)傳輸,將數(shù)據(jù)通過網(wǎng)絡(luò)從一臺設(shè)備傳輸?shù)搅硪慌_設(shè)備。在java.net包下提供了一系列的類或接口,供程序員使用,完成網(wǎng)絡(luò)通信。

2、網(wǎng)絡(luò)

????????概念:?兩臺或多臺設(shè)備通過一定物理設(shè)備連接起來構(gòu)成了網(wǎng)絡(luò)
????????根據(jù)網(wǎng)絡(luò)的覆蓋范圍不同,對網(wǎng)絡(luò)進(jìn)行分類:
????????????????局域網(wǎng): 覆蓋范圍最小,僅僅覆蓋一個教室或一個機(jī)房
????????????????城域網(wǎng):?覆蓋范圍較大,可以覆蓋一個城市
????????????????廣域網(wǎng): 覆蓋范圍最大, 可以覆蓋全國,甚至全球,萬維網(wǎng)是廣域網(wǎng)的代表


3、IP地址

? ? ? ? ① 概念: 用于唯一標(biāo)識網(wǎng)絡(luò)中的每臺計算機(jī)/主機(jī)
????????② 查看ip地址: ipconfig
????????③ ip地址的表示形式: 點(diǎn)分十進(jìn)制XX.XX.XX.XX

????????④ 每一個十進(jìn)制數(shù)的范圍:0~255
????????⑤ ip地址的組成=網(wǎng)絡(luò)地址+主機(jī)地址,比如: 192.168.16.69

????????⑥ iIPV6是互聯(lián)網(wǎng)工程任務(wù)組設(shè)計的用于替代IPv4的下一代IP協(xié)議,其地址數(shù)量號稱可以為全世界的每一粒沙子編上一個地址。
????????⑦由于IPV4最大的問題在于網(wǎng)絡(luò)地址資源有限,嚴(yán)重制約了互聯(lián)網(wǎng)的應(yīng)用和發(fā)展。 IPv6的使用, 不僅能解決網(wǎng)絡(luò)地址資源數(shù)量的問題,而且也解決了多種接入設(shè)備連入互聯(lián)網(wǎng)
的障礙。

????????

? ? ? ?? IPV4的地址分類

javase中網(wǎng)絡(luò)編程的主要知識點(diǎn),JAVA重點(diǎn)部分的筆記,大數(shù)據(jù),java

?????????? 類型的范圍

javase中網(wǎng)絡(luò)編程的主要知識點(diǎn),JAVA重點(diǎn)部分的筆記,大數(shù)據(jù),java

?補(bǔ)充特殊:127.0.0.1? 表示本機(jī)地址


4、域名

????????①例如百度的域名:www.baidu.com
????????②好處: 為了方便記憶, 解決記IP的困難
????????③概念: 將IP地址映射成域名,這里怎么映射上,HTTP協(xié)議
????????④端口號

????????????????? 概念: 用于標(biāo)識計算機(jī)上某個特定的網(wǎng)絡(luò)程序
????????????????? 表示形式: 以整數(shù)形式,端口范圍0~65535[2個字節(jié)表示端口0~2A16-1]
????????????????? 0~1024已經(jīng)被占用,比如 ssh 22, ftp 21, smtp 25 http 80
????????????????? 常見的網(wǎng)絡(luò)程序端口號:
????????????????????????tomcat: 8080

????????????????????????mysqk: 3306

????????????????????????oracle: 1521

????????????????????????sqlserver: 1433


5、網(wǎng)絡(luò)通信協(xié)議

(1)協(xié)議(tcp/ip):
????????TCP/IP (Transmission Control Protocol/internet Protocol)的簡寫中文譯名為傳輸控制協(xié)議/因特網(wǎng)互聯(lián)協(xié)議,又叫網(wǎng)絡(luò)通訊協(xié)議,這個協(xié)議是Internet最基本的協(xié)議、 Internet國際互聯(lián)網(wǎng)絡(luò)的基礎(chǔ), 簡單地說,就是由網(wǎng)絡(luò)層的IP協(xié)議和傳輸層的TCP協(xié)議組成的。

javase中網(wǎng)絡(luò)編程的主要知識點(diǎn),JAVA重點(diǎn)部分的筆記,大數(shù)據(jù),java

(2)TCP 和 UDP

?????? TCP協(xié)議:傳輸控制協(xié)議
? ? ? ? ?① 使用TCP議前,須先建立TCP連接,形成傳輸數(shù)據(jù)通道傳輸前,采用”三次握手”方式,是可靠的

? ? ? ? ? ② TCP議進(jìn)行通信的兩個應(yīng)用進(jìn)程:客戶端、服務(wù)端

??????????③ 在連接中可進(jìn)行大數(shù)據(jù)量的傳輸

??????????④ 傳輸完畢, 需釋放已建立的連接,效率低
??????? UDP協(xié)議:用戶數(shù)據(jù)協(xié)議
??????????① 將數(shù)據(jù)、源、目的封裝成數(shù)據(jù)包,不需要建立連接,因無需連接, 故是不可靠的

??????????② 每個數(shù)據(jù)報的大小限制在64K內(nèi),不適合傳輸大量數(shù)據(jù)
??????????③ 發(fā)送數(shù)據(jù)結(jié)束時無需釋放資源(因?yàn)椴皇敲嫦蜻B接的)速度快


補(bǔ)充:InetAddress 類

? ? ? ? getLocalHost:獲取本機(jī)InetAddress對象

????????getByName:根據(jù)指定主機(jī)名/域名獲取ip地址對象

????????getHostName:獲取inetAddress對象的主機(jī)名

????????getHostAddress:獲取inetAddress對象的地址


6、Socket

? ? ? ?? 套接字(Socket)開發(fā)網(wǎng)絡(luò)應(yīng)用程序被廣泛采用,以至于成為事實(shí)上的標(biāo)準(zhǔn)

???????? 通信的兩端都要有Socket, 是兩臺機(jī)器間通信的端點(diǎn)。網(wǎng)絡(luò)通信其實(shí)就是Socket間的通信。
???????? Sochet許程序把網(wǎng)絡(luò)連接當(dāng)成一個流,數(shù)據(jù)在兩個Socket同通IO傳輸
???????? 一般主動發(fā)起通信的應(yīng)用程序?qū)倏蛻舳? 等待通信請求的為服務(wù)端

javase中網(wǎng)絡(luò)編程的主要知識點(diǎn),JAVA重點(diǎn)部分的筆記,大數(shù)據(jù),java


二、TCP網(wǎng)絡(luò)通信編程

?javase中網(wǎng)絡(luò)編程的主要知識點(diǎn),JAVA重點(diǎn)部分的筆記,大數(shù)據(jù),java

?1、應(yīng)用實(shí)例1(字節(jié)流)

? 服務(wù)端:

public class SocketTCP01Server {
    public static void main(String[] args) throws IOException {
        //1、在本機(jī)的9999端口監(jiān)聽,等待鏈接
        //   細(xì)節(jié):要求本機(jī)沒有其他服務(wù)在監(jiān)聽9999端口
        //   細(xì)節(jié):這個ServerSocket 可以通過accept 返回多個Socket[多個客戶端連接服務(wù)器的并發(fā)]
        ServerSocket serverSocket = new ServerSocket(9999);
        System.out.println("服務(wù)端在監(jiān)聽9999端口,等待連接......");

        //2、當(dāng)沒有客戶端連接9999端口時,程序會阻塞,等待連接
        //   如果有程序連接,則返回Socket對象,程序進(jìn)行執(zhí)行
        Socket socket = serverSocket.accept();
        System.out.println("服務(wù)端 socket = " + socket.getClass());

        //3、通過 讀取客戶端寫入到數(shù)據(jù)通道的數(shù)據(jù),顯示
        InputStream inputStream = socket.getInputStream();

        //4、IO讀取
        byte[] buf = new byte[1024];
        int readline = 0;
        while ((readline = inputStream.read(buf)) != -1){
            //根據(jù)讀取到的實(shí)際長度,顯示內(nèi)容
            System.out.println(new String(buf, 0,readline));
        }

        //5、關(guān)閉流
        inputStream.close();
        socket.close();
        serverSocket.close();
    }
}

? 客戶端:

public class SocketTCP01Client {
    public static void main(String[] args) throws IOException {
        //連接服務(wù)端(ip ,接口)
        //解析:連接本機(jī)的9999端口,如果連接成功,則返回Socket對象
        Socket socket = new Socket(InetAddress.getLocalHost(), 9999);
        System.out.println("客戶端 socket = " + socket.getClass());

        //2、連接上后,生成Socket,通過
        //   得到 和 socket對象相關(guān)聯(lián)的輸出流對象socket.getOutputStream()
        OutputStream outputStream = socket.getOutputStream();

        //3、通過輸出流,寫入數(shù)據(jù)到 數(shù)據(jù)通道
        outputStream.write("hello,server".getBytes());

        //4、關(guān)閉流對象和socket對象
        outputStream.close();
        socket.close();
        System.out.println("客戶端退出.....");
    }
}

2、應(yīng)用實(shí)例2(字節(jié)流)

? 服務(wù)端:

public class SocketTCP02Server {
    public static void main(String[] args) throws IOException {
        //1、在本機(jī)的9999端口監(jiān)聽,等待鏈接
        //   細(xì)節(jié):要求本機(jī)沒有其他服務(wù)在監(jiān)聽9999端口
        //   細(xì)節(jié):這個ServerSocket 可以通過accept 返回多個Socket[多個客戶端連接服務(wù)器的并發(fā)]
        ServerSocket serverSocket = new ServerSocket(9999);
        System.out.println("服務(wù)端在監(jiān)聽9999端口,等待連接......");

        //2、當(dāng)沒有客戶端連接9999端口時,程序會阻塞,等待連接
        //   如果有程序連接,則返回Socket對象,程序進(jìn)行執(zhí)行
        Socket socket = serverSocket.accept();
        System.out.println("服務(wù)端 socket = " + socket.getClass());

        //3、通過 讀取客戶端寫入到數(shù)據(jù)通道的數(shù)據(jù),顯示
        InputStream inputStream = socket.getInputStream();

        //4、IO讀取
        byte[] buf = new byte[1024];
        int readline = 0;
        while ((readline = inputStream.read(buf)) != -1){
            //根據(jù)讀取到的實(shí)際長度,顯示內(nèi)容
            System.out.println(new String(buf, 0,readline));
        }

        //5、獲取socket相關(guān)聯(lián)的輸出流
        OutputStream outputStream = socket.getOutputStream();
        outputStream.write("hello,client".getBytes());

        //設(shè)置結(jié)束標(biāo)記
        socket.shutdownOutput();

        //6、關(guān)閉流
        inputStream.close();
        socket.close();
        serverSocket.close();
        outputStream.close();

    }
}

? 客戶端:

public class SocketTCP02Client {
    public static void main(String[] args) throws IOException {
        //連接服務(wù)端(ip ,接口)
        //解析:連接本機(jī)的9999端口,如果連接成功,則返回Socket對象
        Socket socket = new Socket(InetAddress.getLocalHost(), 9999);
        System.out.println("客戶端 socket = " + socket.getClass());

        //2、連接上后,生成Socket,通過
        //   得到 和 socket對象相關(guān)聯(lián)的輸出流對象socket.getOutputStream()
        OutputStream outputStream = socket.getOutputStream();

        //3、通過輸出流,寫入數(shù)據(jù)到 數(shù)據(jù)通道
        outputStream.write("hello,server".getBytes());

        //設(shè)置結(jié)束標(biāo)記
        socket.shutdownOutput();

        //4、獲取和socket相關(guān)聯(lián)的輸入流數(shù)據(jù),讀取數(shù)據(jù)(字節(jié)),并顯示
        InputStream inputStream = socket.getInputStream();
        byte[] buf = new byte[1024];
        int readline = 0;
        while ((readline = inputStream.read(buf)) != -1){
            System.out.println(new String(buf, 0,readline));
        }

        //5、關(guān)閉流對象和socket對象
        outputStream.close();
        socket.close();
        inputStream.close();
        System.out.println("客戶端退出.....");
    }
}

3、應(yīng)用實(shí)例3(字符流)

? 服務(wù)端:

public class SocketTCP03Server {
    public static void main(String[] args) throws IOException {
        //1、在本機(jī)的9999端口監(jiān)聽,等待鏈接
        //   細(xì)節(jié):要求本機(jī)沒有其他服務(wù)在監(jiān)聽9999端口
        //   細(xì)節(jié):這個ServerSocket 可以通過accept 返回多個Socket[多個客戶端連接服務(wù)器的并發(fā)]
        ServerSocket serverSocket = new ServerSocket(9999);
        System.out.println("服務(wù)端在監(jiān)聽9999端口,等待連接......");

        //2、當(dāng)沒有客戶端連接9999端口時,程序會阻塞,等待連接
        //   如果有程序連接,則返回Socket對象,程序進(jìn)行執(zhí)行
        Socket socket = serverSocket.accept();
        System.out.println("服務(wù)端 socket = " + socket.getClass());

        //3、通過 讀取客戶端寫入到數(shù)據(jù)通道的數(shù)據(jù),顯示
        InputStream inputStream = socket.getInputStream();

        //4、IO讀取,使用字符流
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
        String s = bufferedReader.readLine();
        System.out.println(s);//輸出


        //5、獲取socket相關(guān)聯(lián)的輸出流
        OutputStream outputStream = socket.getOutputStream();
        //使用字符輸出流的方式恢復(fù)信息
        BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream));
        bufferedWriter.write("hello,client 字符流");
        bufferedWriter.newLine();//寫入換行符,表示恢復(fù)內(nèi)容結(jié)束
        bufferedWriter.flush();//手動刷新

        //設(shè)置結(jié)束標(biāo)記
        socket.shutdownOutput();

        //6、關(guān)閉流
        bufferedReader.close();
        bufferedWriter.close();
        socket.close();
        serverSocket.close();

    }
}

? 客戶端:

public class SocketTCP03Client {
    public static void main(String[] args) throws IOException {
        //連接服務(wù)端(ip ,接口)
        //解析:連接本機(jī)的9999端口,如果連接成功,則返回Socket對象
        Socket socket = new Socket(InetAddress.getLocalHost(), 9999);
        System.out.println("客戶端 socket = " + socket.getClass());

        //2、連接上后,生成Socket,通過
        //   得到 和 socket對象相關(guān)聯(lián)的輸出流對象socket.getOutputStream()
        OutputStream outputStream = socket.getOutputStream();

        //3、通過輸出流,寫入數(shù)據(jù)到 數(shù)據(jù)通道,使用字符流
        //outputStream.write("hello,server".getBytes());
        BufferedWriter bufferedWriter = new BufferedWriter(new OutputStreamWriter(outputStream));
        bufferedWriter.write("hello,server 字符流");
        bufferedWriter.newLine();//插入一個換行符,表示寫入的內(nèi)容結(jié)束,注意,要求對方使用readline(),結(jié)束標(biāo)識
        bufferedWriter.flush();//如果使用字符流,需要手動刷新,否則數(shù)據(jù)不會寫入數(shù)據(jù)通道


        //4、獲取和socket相關(guān)聯(lián)的輸入流數(shù)據(jù),讀取數(shù)據(jù)(字節(jié)),并顯示
        InputStream inputStream = socket.getInputStream();
        BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(inputStream));
        String s = bufferedReader.readLine();
        System.out.println(s);


        //5、關(guān)閉流對象和socket對象
        bufferedReader.close();
        socket.close();
        bufferedWriter.close();
        System.out.println("客戶端退出.....");
    }
}

4、netstat 指令

? ? ? ? ? netstat -an 可以查看當(dāng)前主機(jī)網(wǎng)絡(luò)情況,包括端口監(jiān)聽情況和網(wǎng)絡(luò)連接情況

????????? netstat -an | more 可以分頁顯示要求在dos控制臺下執(zhí)行 win+r
?????????說明:
? ? ? ? ? ? (1)Listening 表示某個端口在監(jiān)聽
? ? ? ? ? ? (2)如果有一個外部程序(客戶端)連接到該端口,就會顯示一條連接信息
? ? ? ? ? ? (3) 可以輸入 ctrl + c 退出指令


三、UDP網(wǎng)絡(luò)通信編程?

1、基本介紹

????????? 類 DatagramSocket 和 DatagramPacket(數(shù)據(jù)包/數(shù)據(jù)報)實(shí)現(xiàn)了基于UDP協(xié)議網(wǎng)絡(luò)程序。
????????? UDP數(shù)據(jù)報通過數(shù)據(jù)報套接字DatagramSocket 發(fā)送和接收,系統(tǒng)不保證UDP 數(shù)據(jù)報一定能夠安全送到目的地,也不能確定什么時候可以抵達(dá)。

????????? DatagramPacket 對象封裝了UDP數(shù)據(jù)報,在數(shù)據(jù)報中包含了發(fā)送端的IP地址和端口號以及接收端的IP地址和端口號。
????????? UDP議中每個數(shù)據(jù)報都給出了完整的地址信息,因此無須建立發(fā)送方和接收方的連接

2、基本流程

????????? 核心的兩個類/對象 DatagramSocket 與 DatagramPacket
????????? 建立發(fā)送端,接收端(沒有服務(wù)端和客戶端概念)
????????? 發(fā)送數(shù)據(jù)前,建立數(shù)據(jù)包/報 DatagramPacket對象
????????? 調(diào)用DatagramSocket 的發(fā)送、接收方法
????????? 關(guān)閉DatagramSocket

3、應(yīng)用實(shí)例

? 發(fā)送端:

public class UDPSenderB {
    public static void main(String[] args) throws IOException {

        //創(chuàng)建DatagramSocket 對象,準(zhǔn)備在9998端口 接收數(shù)據(jù)
        DatagramSocket socket = new DatagramSocket(9998);

        //2、將需要發(fā)送的數(shù)據(jù),封裝到DatagramPacket對象
        byte[] data = "hello 明天吃火鍋".getBytes();
        // 封裝的DatagramPacket 對象 data 內(nèi)容字節(jié)數(shù)組, data.length ,主機(jī)(IP),端口
        DatagramPacket packet = new DatagramPacket(data, data.length, InetAddress.getLocalHost(), 9999);

        socket.send(packet);

        //接收數(shù)據(jù)
        byte[] bytes = new byte[1024];
        DatagramPacket datagramPacket = new DatagramPacket(bytes, bytes.length);

        System.out.println("等待接收數(shù)據(jù)...");
        socket.receive(datagramPacket);

        int length = datagramPacket.getLength();
        byte[] data1 = datagramPacket.getData();

        String s = new String(data1 , 0 ,length);
        System.out.println(s);

        //關(guān)閉資源
        socket.close();
        System.out.println("B端退出...");
    }
}

? 接收端:文章來源地址http://www.zghlxwxcb.cn/news/detail-806484.html

public class UDPReceiverA {
    public static void main(String[] args) throws IOException {

        //1、創(chuàng)建一個DatagramSocket 對象,準(zhǔn)備在9999接收數(shù)據(jù)
        DatagramSocket socket = new DatagramSocket(9999);
        //2、構(gòu)建一個DatagramPacket 對象,準(zhǔn)備接收數(shù)據(jù)
        //   UDP協(xié)議中,每個數(shù)據(jù)包只能是64k
        byte[] buf = new byte[1024];
        DatagramPacket packet = new DatagramPacket(buf, buf.length);
        //3、調(diào)用接收方法,將通過網(wǎng)絡(luò)傳輸?shù)腄atagramPacket 對象,填充到packet 對象
        //   當(dāng)有數(shù)據(jù)包發(fā)送到 本機(jī)的9999端口時,就會接收數(shù)據(jù),否則就會阻塞
        System.out.println("接收端A 等待接收數(shù)據(jù)...");
        socket.receive(packet);

        //4、可以把packet 進(jìn)行拆包,取出數(shù)據(jù),并顯示
        int length = packet.getLength();//實(shí)際數(shù)據(jù)長度
        byte[] data = packet.getData();//接收到的實(shí)際數(shù)據(jù)

        String s = new String(data, 0, length);
        System.out.println(s);

        //回復(fù)信息
        byte[] bytes = "好的,明天見".getBytes();
        DatagramPacket datagramPacket = new DatagramPacket(bytes, bytes.length, InetAddress.getLocalHost(), 9998);
        socket.send(datagramPacket);


        //關(guān)閉資源
        socket.close();
        System.out.println("A端退出..");
    }
}

到了這里,關(guān)于《Java SE》網(wǎng)絡(luò)編程基礎(chǔ)知識歸納。的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • 一、網(wǎng)絡(luò)編程之基礎(chǔ)知識詳解

    一、網(wǎng)絡(luò)編程之基礎(chǔ)知識詳解

    引言: 初學(xué)網(wǎng)絡(luò)編程時會涉及到許多網(wǎng)絡(luò)基礎(chǔ)知識,這些知識點(diǎn)比較零碎,本文希望系統(tǒng)總結(jié)一次,以便在后續(xù)的學(xué)習(xí)和工作中能夠快速查閱。 網(wǎng)絡(luò)分層模型 OSI 七層模型 OSI 模型,也叫做七層模型, OSI 是 Open System Interconnection 的縮寫,譯為“開放式系統(tǒng)互聯(lián)”。 OSI 模型是

    2024年02月09日
    瀏覽(28)
  • 《3.linux應(yīng)用編程和網(wǎng)絡(luò)編程-第8部分-3.8.網(wǎng)絡(luò)基礎(chǔ)》 3.8.1.網(wǎng)絡(luò)通信概述 3.8.3.網(wǎng)絡(luò)通信基礎(chǔ)知識2

    《3.linux應(yīng)用編程和網(wǎng)絡(luò)編程-第8部分-3.8.網(wǎng)絡(luò)基礎(chǔ)》 3.8.1.網(wǎng)絡(luò)通信概述 3.8.3.網(wǎng)絡(luò)通信基礎(chǔ)知識2

    ????進(jìn)程間通信: 管道 、 信號量、 共享內(nèi)存, 技術(shù)多,操作麻煩 ? ??線程就是解決 進(jìn)程間 通信 麻煩的事情,這是線程的 優(yōu)勢 3.8.1.網(wǎng)絡(luò)通信概述 3.8.1.1、從進(jìn)程間通信說起: 網(wǎng)絡(luò)域套接字socket , 網(wǎng)絡(luò)通信其實(shí)就是位于網(wǎng)絡(luò)中不同主機(jī)上面? ? ? ? ? ? ? ? ? ?的?

    2024年02月15日
    瀏覽(27)
  • 由淺入深Netty基礎(chǔ)知識NIO網(wǎng)絡(luò)編程

    由淺入深Netty基礎(chǔ)知識NIO網(wǎng)絡(luò)編程

    阻塞模式下,相關(guān)方法都會導(dǎo)致線程暫停 ServerSocketChannel.accept 會在沒有連接建立時讓線程暫停 SocketChannel.read 會在沒有數(shù)據(jù)可讀時讓線程暫停 阻塞的表現(xiàn)其實(shí)就是線程暫停了,暫停期間不會占用 cpu,但線程相當(dāng)于閑置 單線程下,阻塞方法之間相互影響,幾乎不能正常工作,

    2024年02月05日
    瀏覽(28)
  • Python網(wǎng)絡(luò)編程(一)——了解IP和端口的基礎(chǔ)知識以及socket的簡單實(shí)現(xiàn)

    Python網(wǎng)絡(luò)編程(一)——了解IP和端口的基礎(chǔ)知識以及socket的簡單實(shí)現(xiàn)

    Python網(wǎng)絡(luò)編程(一)——了解IP和端口的基礎(chǔ)知識以及socket的簡單實(shí)現(xiàn) IP(Internet Protocol) 地址是唯一標(biāo)識互聯(lián)網(wǎng)上連接至計算機(jī)或其他設(shè)備的地址。每一個設(shè)備在 IP 網(wǎng)絡(luò)中擁有一個不同的 IP 地址,它由 32 位二進(jìn)制數(shù)組成,通常表示為四個從 0 到 255 的十進(jìn)制數(shù)之間用 (.)

    2024年02月04日
    瀏覽(22)
  • C/C++網(wǎng)絡(luò)編程基礎(chǔ)知識超詳細(xì)講解第二部分(系統(tǒng)性學(xué)習(xí)day12)

    C/C++網(wǎng)絡(luò)編程基礎(chǔ)知識超詳細(xì)講解第二部分(系統(tǒng)性學(xué)習(xí)day12)

    ? ? ? ? ? ? 懶大王感謝大家的關(guān)注和三連支持~ ? ? ? 目錄 前言 一、UDP編程 UDP特點(diǎn): ?UDP框架: UDP函數(shù)學(xué)習(xí)? ?發(fā)送端代碼案例如下: 二、多路復(fù)用? 前提講述 select? poll 三、圖解如下? 總結(jié)? ? ? ?? 作者簡介: ?懶大王敲代碼,正在學(xué)習(xí)嵌入式方向有關(guān)課程stm32,網(wǎng)絡(luò)

    2024年02月07日
    瀏覽(21)
  • C/C++網(wǎng)絡(luò)編程基礎(chǔ)知識超詳細(xì)講解第一部分(系統(tǒng)性學(xué)習(xí)day11)

    目錄 前言 一、網(wǎng)絡(luò)的含義與構(gòu)成 含義: 構(gòu)成:? 二、網(wǎng)絡(luò)的體系結(jié)構(gòu) 1OSI七層模型 2TCP/IP協(xié)議體系結(jié)構(gòu)? 3數(shù)據(jù)經(jīng)過體系結(jié)構(gòu),怎么封裝?? 4端口號 5大小端序 6TCP/UDP傳輸層的協(xié)議? 三、系統(tǒng)函數(shù)API學(xué)習(xí)框架(TCP)? ?? 服務(wù)器(優(yōu)先): ?客戶端: 四、服務(wù)器和客戶端代碼實(shí)

    2024年02月08日
    瀏覽(26)
  • C/C++網(wǎng)絡(luò)編程基礎(chǔ)知識超詳細(xì)講解第三部分(系統(tǒng)性學(xué)習(xí)day13)

    C/C++網(wǎng)絡(luò)編程基礎(chǔ)知識超詳細(xì)講解第三部分(系統(tǒng)性學(xué)習(xí)day13)

    ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? 懶大王感謝大家的關(guān)注和三連支持~ ?? 目錄 前言 一、并發(fā)服務(wù)器 1.進(jìn)程并發(fā)服務(wù)器 實(shí)例代碼如下:? 2.線程并發(fā)服務(wù)器 實(shí)例代碼如下:? 二、域通信 域通信TCP實(shí)例代碼如下:? 三、廣播與組播(UDP)? 1.廣播 實(shí)例代碼

    2024年02月05日
    瀏覽(22)
  • C++網(wǎng)絡(luò)編程 TCP套接字基礎(chǔ)知識,利用TCP套接字實(shí)現(xiàn)客戶端-服務(wù)端通信

    C++網(wǎng)絡(luò)編程 TCP套接字基礎(chǔ)知識,利用TCP套接字實(shí)現(xiàn)客戶端-服務(wù)端通信

    流式套接字編程針對TCP協(xié)議通信,即是面向?qū)ο蟮耐ㄐ?,分為服?wù)端和客戶端兩部分。 1)加載套接字庫( 使用函數(shù)WSAStartup() ),創(chuàng)建套接字( 使用socket() ) 2)綁定套接字到一個IP地址和一個端口上( 使用函數(shù)bind() ) 3)將套接字設(shè)置為監(jiān)聽模式等待連接請求( 使用函數(shù)

    2024年02月03日
    瀏覽(103)
  • Day19-【Java SE進(jìn)階】網(wǎng)絡(luò)編程

    Day19-【Java SE進(jìn)階】網(wǎng)絡(luò)編程

    一、網(wǎng)絡(luò)編程 1.概述 可以讓設(shè)備中的程序與網(wǎng)絡(luò)上其他設(shè)備中的程序進(jìn)行數(shù)據(jù)交互(實(shí)現(xiàn)網(wǎng)絡(luò)通信的)。 java.net,*包下提供了網(wǎng)絡(luò)編程的解決方案! 基本的通信架構(gòu) 基本的通信架構(gòu)有2種形式:CS架構(gòu)(Client客戶端/Server服務(wù)端)、BS架構(gòu)(Browser瀏覽器/Server服務(wù)端)。 網(wǎng)絡(luò)通信的關(guān)鍵三要

    2024年04月14日
    瀏覽(21)
  • Java網(wǎng)絡(luò)編程知識

    Java網(wǎng)絡(luò)編程知識

    目錄 1.網(wǎng)絡(luò)編程概述 1.網(wǎng)絡(luò)編程的目的 2.網(wǎng)絡(luò)編程的三個問題 1.如何準(zhǔn)確定位網(wǎng)絡(luò)上的主機(jī)? 2.如何定位主機(jī)上的特定應(yīng)用? 3.找到主機(jī)后如何可靠高效的進(jìn)行數(shù)據(jù)傳輸? 2.通信要素一:IP和端口號 1.IP地址 2.端口號 3.套接字 3.通信要素二:網(wǎng)絡(luò)協(xié)議 1.使用TCP協(xié)議通信 1.客戶端

    2024年02月08日
    瀏覽(18)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包