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

Java網(wǎng)絡(luò)編程之IP,端口號,通信協(xié)議(UDP,TCP)

這篇具有很好參考價值的文章主要介紹了Java網(wǎng)絡(luò)編程之IP,端口號,通信協(xié)議(UDP,TCP)。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.軟件架構(gòu)

C/S:客戶端/服務(wù)器
在用戶本地需要下載安裝客戶端程序,在遠程有一個服務(wù)器端程序。

  • 優(yōu)點:畫面精美,用戶體驗好
  • 缺點:用戶需要下載更新

B/S:瀏覽器/服務(wù)器
只需要一個瀏覽器,用戶通過指定網(wǎng)址訪問對應(yīng)的服務(wù)器。

  • 優(yōu)點:不需要開發(fā)客戶端,只需要頁面+服務(wù)端,
    用戶不需要下載,打開瀏覽器就能使用
  • 缺點:如果應(yīng)用過大,用戶體驗收到影響

2.網(wǎng)絡(luò)編程三要素

IP,端口號,網(wǎng)絡(luò)協(xié)議。

①IP:設(shè)備在網(wǎng)絡(luò)中的地址,是唯一的標(biāo)識
全稱:Internet Protocol,是互聯(lián)網(wǎng)協(xié)議地址,也稱IP地址
是分配給上網(wǎng)設(shè)備的數(shù)字標(biāo)簽。
②端口號:應(yīng)用程序在設(shè)備中唯一的標(biāo)識
③協(xié)議:數(shù)據(jù)在網(wǎng)絡(luò)傳輸中的規(guī)則,常見的協(xié)議有:UDP、TCP、HTTP、HTTPS、FTP

3.IP

1.IPV4

①全稱:Internet Protocol version 4,互聯(lián)網(wǎng)通信協(xié)議第四版
采用32位地址長度,分成4組
使用點分十進制表示

②IPV4的地址分類形式

  • 公網(wǎng)地址(萬維網(wǎng)使用)和私有地址(局域網(wǎng)使用)。
  • 192.168.開頭的就是私有址址,范圍即為192.168.0.0–192.168.255.255,專門為組織機構(gòu)內(nèi)部使用,以此節(jié)省IP

③特殊ip地址:
本地回環(huán)地址127.0.0.1或者localhost,表示本機ip。

④Windows的CMD命令:
ipconfig:查看本機IP地址
ping:檢查網(wǎng)絡(luò)是否連通

2.IPV6

全稱:Internet Protocolversion 6,互聯(lián)網(wǎng)通信協(xié)議第六版
由于互聯(lián)網(wǎng)的蓬勃發(fā)展,IP地址的需求量愈來愈大,而IPV4的模式下IP的總數(shù)是有限的
采用128位地址長度,分成8組。
使用冒分十六進制表示,特殊情況使用0位壓縮表示法。

        //獲取InetAddress的對象
        InetAddress address = InetAddress.getByName("127.0.0.1");

4.端口號

應(yīng)用程序在設(shè)備中唯一的標(biāo)識。
端口號:由兩個字節(jié)表示的整數(shù),取值范圍:0~65535
其中0~1023之間的端口號用于一些知名的網(wǎng)絡(luò)服務(wù)或者應(yīng)用
我們自己使用1024以上的端口號就可以了
注:一個端口號只能被一個應(yīng)用程序使用。

5.協(xié)議

計算機網(wǎng)絡(luò)中,連接和通信的規(guī)則被稱為網(wǎng)絡(luò)通信協(xié)議

  • OSI參考模型:世界互聯(lián)協(xié)議標(biāo)準(zhǔn),全球通信規(guī)范,單模型過于理想化,未能在因特網(wǎng)上進行廣泛推廣。
  • TCP/IP參考模型(或TCP/IP協(xié)議): 事實上的國際標(biāo)準(zhǔn)。

Java網(wǎng)絡(luò)編程之IP,端口號,通信協(xié)議(UDP,TCP),JavaSE,網(wǎng)絡(luò),java,tcp/ip

1.UDP協(xié)議

  • 用戶數(shù)據(jù)報協(xié)議(User Datagram Protocol)
  • UDP是面向無連接通信協(xié)議。
    速度快,有大小限制一次最多發(fā)送64K,數(shù)據(jù)不安全,易丟失數(shù)據(jù).

UDP協(xié)議發(fā)送數(shù)據(jù):

public class Send{
    public static void main(String[] args) throws IOException {
        //創(chuàng)建DatagramSocket對象
        DatagramSocket ds = new DatagramSocket();
        //打包數(shù)據(jù)
        String str = "你好??!";
        byte[] bytes = str.getBytes();
        InetAddress address = InetAddress.getByName("127.0.0.1");
        int port = 10006;

        DatagramPacket dp = new DatagramPacket(bytes, bytes.length, address, port);
        //發(fā)送數(shù)據(jù)
        ds.send(dp);
        //釋放資源
        ds.close();
    }
}

UDP協(xié)議接收數(shù)據(jù):

public class Receive{
    public static void main(String[] args) throws IOException {
        //創(chuàng)建DatagramSocket對象:接收時綁定的端口號要與發(fā)送時的端口保持一致
        DatagramSocket ds = new DatagramSocket(10086);
        //接收數(shù)據(jù)包
        byte[] bytes = new byte[1024];
        DatagramPacket dp = new DatagramPacket(bytes, bytes.length);
        ds.receive(dp);
        //解析數(shù)據(jù)包
        byte[] data = dp.getData();
        int length = dp.getLength();
        InetAddress address = dp.getAddress();
        int port = dp.getPort();

        System.out.println("接收到數(shù)據(jù):" + new String(data, 0, length));
        System.out.println("該數(shù)據(jù)是從" + address + "這臺電腦中的" + port + "這個端口號發(fā)出的");
        //釋放資源
        ds.close();
    }
}

UDP的三種通信方式:單播,組播,廣播

1.單播

單播是一種UDP通信的方式,其中一臺發(fā)送方的計算機向一臺接收方的計算機發(fā)送數(shù)據(jù)包。
在單播通信中,發(fā)送方和接收方之間是一對一的關(guān)系,數(shù)據(jù)包只會發(fā)送到指定的接收方。
單播通信適用于點對點通信或單個目標(biāo)的廣播通信。

2.組播

組播是一種UDP通信的方式,其中一臺發(fā)送方的計算機可以同時向多個接收方的計算機發(fā)送數(shù)據(jù)包。
在組播通信中,發(fā)送方將數(shù)據(jù)包發(fā)送到一個特定的組播IP地址,而不是單獨的目標(biāo)IP地址。
所有加入該組播組的接收方都可以接收到發(fā)送方發(fā)送的數(shù)據(jù)包。
組播通信適用于需要同時向多個接收方傳輸相同數(shù)據(jù)的場景,如視頻會議、多媒體廣播等。
使用組播可以有效地減少網(wǎng)絡(luò)帶寬的消耗和系統(tǒng)負載。
組播地址: 224.0.0.0 ~ 239.255.255.255
其中224.0.0.0 ~ 224.0.0.255 為預(yù)留的組播地址

3.廣播

在UDP通信中,廣播是一種發(fā)送方向局域網(wǎng)中的所有計算機發(fā)送數(shù)據(jù)包的方式。
發(fā)送方將數(shù)據(jù)包發(fā)送到廣播IP地址,該IP地址被定義為特定的網(wǎng)絡(luò)地址( 255.255.255.255),表示發(fā)送給整個局域網(wǎng)內(nèi)的所有計算機。
使用廣播通信,發(fā)送方可以將數(shù)據(jù)包一次性發(fā)送給所有計算機,而無需指定單獨的目標(biāo)IP地址。
所有接收方都可以接收到發(fā)送方發(fā)送的數(shù)據(jù)包。
廣播通信通常用于向局域網(wǎng)內(nèi)的所有設(shè)備廣播信息,例如在局域網(wǎng)內(nèi)發(fā)現(xiàn)其他設(shè)備或進行網(wǎng)絡(luò)設(shè)備配置。

2.TCP協(xié)議

  • 傳輸控制協(xié)議TCP(Transmission Control Protocol)
  • TCP協(xié)議是面向連接的通信協(xié)議。
    速度慢,沒有大小限制,數(shù)據(jù)安全。

TCP通信協(xié)議是一種可靠的網(wǎng)絡(luò)協(xié)議,它在通信的兩端各建立一個Socket對象
通信之前要保證連接已經(jīng)建立
通過Socket產(chǎn)生IO流來進行網(wǎng)絡(luò)通信

客戶端發(fā)送數(shù)據(jù):

public class Client {
    public static void main(String[] args) throws IOException {
        //發(fā)送數(shù)據(jù)
        //創(chuàng)建Socket對象
        Socket socket = new Socket("127.0.0.1", 10001);
        //從連接通道中獲取輸出流
        OutputStream os = socket.getOutputStream();
        //寫出數(shù)據(jù)
        os.write("你好".getBytes());
        //釋放資源
        os.close();
        socket.close();
    }
}

服務(wù)器接收數(shù)據(jù):

public class Server {
    public static void main(String[] args) throws IOException {
        //接收數(shù)據(jù)
        //
        ServerSocket ss = new ServerSocket(10001);
        //監(jiān)聽用戶的連接
        Socket socket = ss.accept();
        //從連接通道中獲取輸入流數(shù)據(jù)
        InputStream is = socket.getInputStream();
        //解決中文亂碼
        InputStreamReader isr = new InputStreamReader(is);
        //使用緩沖流提高讀取效率
        BufferedReader br = new BufferedReader(isr);
        int b;
        while ((b = br.read()) != -1) {
            System.out.println((char) b);
        }
        //釋放資源
        socket.close();
        ss.close();

    }
}

1.三次握手

確保連接建立:
①客戶端向服務(wù)器發(fā)出連接請求,等待服務(wù)器確認。
②服務(wù)器向客戶端返回一個響應(yīng),告訴客戶端收到了請求。
③客戶端向服務(wù)器再次發(fā)出確認信息,連接建立。

2.四次揮手

確保連接斷開,且數(shù)據(jù)處理完畢:
①客戶端向服務(wù)器發(fā)出取消連接請求
②服務(wù)器向客戶端返回一個響應(yīng),表示收到客戶端取消請求
③服務(wù)器將最后的數(shù)據(jù)處理完畢,服務(wù)器向客戶端發(fā)出確認取消信息
④客戶端再次發(fā)送確認消息,連接取消文章來源地址http://www.zghlxwxcb.cn/news/detail-778329.html

到了這里,關(guān)于Java網(wǎng)絡(luò)編程之IP,端口號,通信協(xié)議(UDP,TCP)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

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

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

相關(guān)文章

  • 【網(wǎng)絡(luò)編程】網(wǎng)絡(luò)通信基礎(chǔ)——簡述TCP/IP協(xié)議

    【網(wǎng)絡(luò)編程】網(wǎng)絡(luò)通信基礎(chǔ)——簡述TCP/IP協(xié)議

    個人主頁:兜里有顆棉花糖 歡迎 點贊?? 收藏? 留言? 加關(guān)注??本文由 兜里有顆棉花糖 原創(chuàng) 收錄于專欄【網(wǎng)絡(luò)編程】【Java系列】 本專欄旨在分享學(xué)習(xí)網(wǎng)絡(luò)編程的一點學(xué)習(xí)心得,歡迎大家在評論區(qū)交流討論?? ip地址簡單來說就是用來描述網(wǎng)絡(luò)上一個設(shè)備的所在位置。 端

    2024年02月04日
    瀏覽(36)
  • Java網(wǎng)絡(luò)編程 *TCP與UDP協(xié)議*

    Java網(wǎng)絡(luò)編程 *TCP與UDP協(xié)議*

    把分布在 不同地理區(qū)域 的具有獨立功能的計算機, 通過通信設(shè)備與線路 連接起來,由功能完善的軟件實現(xiàn)資源共享和信息傳遞的 系統(tǒng) 簡單來說就是把不同地區(qū)的計算機通過設(shè)備連接起來,實現(xiàn)不同地區(qū)之前的數(shù)據(jù)傳輸 網(wǎng)絡(luò)編程 是借助計算機網(wǎng)絡(luò),實現(xiàn)我們所寫的程序,在不同

    2024年01月16日
    瀏覽(31)
  • 網(wǎng)絡(luò)編程day2——基于TCP/IP協(xié)議的網(wǎng)絡(luò)通信

    ? ? ? ? 計算機S ? ? ? ? ? ? ? ? ? ? ? ? ????????????????????????計算機C ? ? ?創(chuàng)建socket對象 ? ? ? ? ? ? ? ? ????????????????? 創(chuàng)建socket對象 ? ? ?準(zhǔn)備通信地址(自己的ip(非公網(wǎng)ip))? ? ? 準(zhǔn)備通信地址 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? (計算

    2024年02月10日
    瀏覽(40)
  • 【Java 網(wǎng)絡(luò)編程】網(wǎng)絡(luò)通信原理、TCP、UDP 回顯服務(wù)

    【Java 網(wǎng)絡(luò)編程】網(wǎng)絡(luò)通信原理、TCP、UDP 回顯服務(wù)

    互聯(lián)網(wǎng)從何而來? 這要追溯到上個世紀(jì) 50 - 60 年代,當(dāng)時正逢美蘇爭霸冷戰(zhàn), 核武器 給戰(zhàn)爭雙方提供了足夠的威懾力,想要保全自己,就要保證自己的 反制手段 是有效的。 如何保證能夠反擊: 保存指揮機構(gòu) 保存核彈頭和發(fā)射井 指揮機構(gòu)和核彈頭之間的通信鏈路 需要保證

    2023年04月10日
    瀏覽(34)
  • 網(wǎng)絡(luò)編程——深入理解TCP/IP協(xié)議——OSI模型和TCP/IP模型:構(gòu)建網(wǎng)絡(luò)通信的基石

    網(wǎng)絡(luò)編程——深入理解TCP/IP協(xié)議——OSI模型和TCP/IP模型:構(gòu)建網(wǎng)絡(luò)通信的基石

    TCP/IP協(xié)議,即 傳輸控制協(xié)議/互聯(lián)網(wǎng)協(xié)議 ,是一組用于在計算機網(wǎng)絡(luò)中實現(xiàn)通信的協(xié)議。它由兩個主要的協(xié)議組成:TCP(傳輸控制協(xié)議)和IP(互聯(lián)網(wǎng)協(xié)議)。TCP負責(zé)確保數(shù)據(jù)的可靠傳輸,而IP則負責(zé)路由數(shù)據(jù)包以在網(wǎng)絡(luò)中傳遞。TCP/IP協(xié)議簇還包含其他輔助協(xié)議,如UDP(用戶數(shù)

    2024年02月14日
    瀏覽(33)
  • 網(wǎng)絡(luò)編程套接字(3)——Java數(shù)據(jù)報套接字(UDP協(xié)議)

    網(wǎng)絡(luò)編程套接字(3)——Java數(shù)據(jù)報套接字(UDP協(xié)議)

    目錄 一、Java數(shù)據(jù)報套接字通信模型 二、UDP數(shù)據(jù)報套接字編程 1、DatagramSocket ????????(1)DatagramSocket構(gòu)造方法 ????????(2)DatagramSocket方法 2、DatagramPacket ????????(1)DatagramPacket構(gòu)造方法 ????????(2)DatagramPacket方法 3、InetSocketAddress 三、代碼示例:回顯服務(wù)

    2024年03月12日
    瀏覽(233)
  • 【Java】--網(wǎng)絡(luò)編程:基于TCP協(xié)議的網(wǎng)絡(luò)通信

    【Java】--網(wǎng)絡(luò)編程:基于TCP協(xié)議的網(wǎng)絡(luò)通信

    TCP協(xié)議(Transmission Control Protocol),即傳輸控制協(xié)議,是一種 面向連接 的, 可靠 的,基于 字節(jié)流 的傳輸層通信協(xié)議。數(shù)據(jù)大小無限制。 建立連接的過程需要 三次握手 。 斷開連接的過程需要 四次揮手 。 使用TCP協(xié)議的通信雙方分別為 客戶端 和 服務(wù)器端 。 客戶端負責(zé)向服務(wù)

    2024年01月23日
    瀏覽(41)
  • 【Java】網(wǎng)絡(luò)編程與Socket套接字、UDP編程和TCP編程實現(xiàn)客戶端和服務(wù)端通信

    【Java】網(wǎng)絡(luò)編程與Socket套接字、UDP編程和TCP編程實現(xiàn)客戶端和服務(wù)端通信

    為什么需要網(wǎng)絡(luò)編程? 現(xiàn)在網(wǎng)絡(luò)普及程序越來越高,網(wǎng)絡(luò)上保存著我們?nèi)粘I钪行枰母鞣N資源,使用程序通過網(wǎng)絡(luò)來獲取這些資源的過程就需要網(wǎng)絡(luò)編程來實現(xiàn)。 什么是網(wǎng)絡(luò)編程? 網(wǎng)絡(luò)編程,指網(wǎng)絡(luò)上的主機,通過不同的進程以程序的方式實現(xiàn)網(wǎng)絡(luò)通信(網(wǎng)絡(luò)數(shù)據(jù)傳輸)

    2024年02月17日
    瀏覽(91)
  • 【Java網(wǎng)絡(luò)編程】基于UDP-Socket 實現(xiàn)客戶端、服務(wù)器通信

    【Java網(wǎng)絡(luò)編程】基于UDP-Socket 實現(xiàn)客戶端、服務(wù)器通信

    ? 哈嘍,大家好~我是你們的老朋友: 保護小周??? 本期為大家?guī)淼氖蔷W(wǎng)絡(luò)編程的 UDP Socket 套接字,基于 UDP協(xié)議的 Socket 實現(xiàn)客戶端服務(wù)器通信 ,Socket 套接字可以理解為是,傳輸層給應(yīng)用層提供的一組 API,如此程序,確定不來看看嘛~~ 本期收錄于博主的專欄 : JavaEE_保

    2024年02月02日
    瀏覽(111)
  • 【Java網(wǎng)絡(luò)編程】OSI七層網(wǎng)絡(luò)模型與TCP/IP協(xié)議簇

    【Java網(wǎng)絡(luò)編程】OSI七層網(wǎng)絡(luò)模型與TCP/IP協(xié)議簇

    1.1、OSI七層網(wǎng)絡(luò)模型 OSI七層網(wǎng)絡(luò)模型中,每層的功能如下: 應(yīng)用層:人與計算機網(wǎng)絡(luò)交互的窗口。 表示層:負責(zé)數(shù)據(jù)格式的封裝,如加密、壓縮、編解碼等。 會話層:建立、終止、管理不同端間的會話連接。 傳輸層:提供端到端(兩臺機器)之間的傳輸機制,以及提供流

    2024年04月11日
    瀏覽(30)

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

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

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

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

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包