婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > 深入理解TCP協議與UDP協議的原理及區別

深入理解TCP協議與UDP協議的原理及區別

熱門標簽:激戰黃昏地圖標注說明 防城港市ai電銷機器人 隨州銷售外呼系統平臺 交行外呼系統有哪些 怎么更改地圖標注電話 臨滄移動外呼系統哪家有 寧夏保險智能外呼系統哪家好 不同的地圖標注 溫嶺代理外呼系統

網絡編程有三個要素,分別是IP地址、端口號和通信協議,那本文主要講述的是TCP與UDP這兩種通信協議,以及編程的實現。

首先,我們需要了解一下IP地址、端口號、通信協議的相關知識。

一、IP地址

網絡中的計算機使用IP地址來進行唯一標識,IP地址有IPv4和IPv6兩種類型。IPv4采用十進制或二進制表示形式,十進制是一種比較常用的表示形式,如192.168.1.131,IPv6采用十六進制表示形式,一般不常用。

如何查看IP地址相關信息:

在Windows系統下,打開cmd,輸入命令ipconfig,按回車即可查看。在Linux或Mac系統下,打開終端,使用ifconfig命令,按回車即可查看。

二、端口號

端口號是計算機中的應用程序的一個整數數字標號,用來區分不同的應用程序。

0 ~ 1024 為被系統使用或保留的端口號,0 ~ 65535為有效的端口號,也就是說我們要對一些程序定義端口號的時候,要選擇1024 ~ 65535范圍內的整數數字。

比如,以前學過的MySQL的端口號是3306,SQLServer的端口號是1433,查了一下Oracle的端口號是1521。

一定要把這些數據庫對應的端口號,藏在深深的腦海里,以后在連接數據庫的時候,會使用到端口號。

三、通信協議

說的通俗一點,通信協議就是網絡通信中的規則,分為TCP協議和UDP協議兩種。

第一種:TCP協議
英文名:Transmission Control Protocol
中文名:傳輸控制協議
協議說明:TCP是一種面向連接的、可靠的、基于字節流的傳輸層通信協議。

舉例:打電話,需要雙方都接通,才能進行對話

特點:效率低,數據傳輸比較安全

第二種:UDP協議
英文名:User Datagram Protocol
中文名:數據報協議
協議說明:UDP是一種面向無連接的傳輸層通信協議。

舉例:發短信,不需要雙方建立連接,But,數據報的大小應限制在64k以內

特點:效率高,數據傳輸不安全,容易丟包

四、三要素關系圖與網絡模型圖

1、網絡編程三要素關系圖

注:圖中端口號、IP地址為演示,并非真實

2、OSI參考模型與TCP/IP參考模型

五、TCP編程

TCP是基于字節流的傳輸層通信協議,所以TCP編程是基于IO流編程。

對于客戶端,我們需要使用Socket類來創建對象。對于服務器端,我們需要使用ServerSocket來創建對象,通過對象調用accept()方法來進行監聽是否有客戶端訪問。

客戶端與服務器端圖解:

客戶端與服務器端實現步驟:

前提:創建一個項目,在項目中創建兩個模塊(model),一個模塊用來放客戶端相關代碼,一個模塊用來放服務器端相關代碼。

目錄結構如下圖

客戶端:

1、創建Socket對象,并指定服務器端應用程序的端口號和服務器端主機的IP地址。

2、使用Socket的對象調用getOutputStream()方法來獲取字節輸出流對象。

3、調用字節輸出流的write(byte[] buf)或者write(int b)向服務器發送指定數據。

4、記得關閉流。

服務器端:

1、創建ServerSocket對象,并指定該應用程序的端口號,端口號必須和客戶端指定的端口號一樣。

2、使用ServerSocket對象的accept()方法來監聽客戶端發送過來的請求,返回值為Socket對象。

3、調用Socket對象的getInputStream()方法獲取字節輸入流對象

4、調用字節輸入流對象的read(byte[] buf)read()方法獲取數據。

5、記得關閉流。

實例:

客戶端向服務器端發送信息,并顯示在服務器端。

Client類(客戶端)

package cn.tkrnet.client;

import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;

public class Client {
    public static void main(String[] args) throws IOException {
        
        //創建Socket對象,指定要發送到服務器端的IP地址,以及服務器端應用程序接收的端口號
        //localhost代表本機IP地址
        Socket client = new Socket("localhost",9000);
        
        //獲取輸出流,用于向服務器端發送數據
        OutputStream os = client.getOutputStream();
        
        os.write("Java is my friend !".getBytes());
        System.out.println("信息已發送");

        //關閉流
        os.close();
        client.close();
    }
}

Server類(服務器端)

package cn.tkrnet.server;

import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class Server {
    public static void main(String[] args) throws IOException {
        System.out.println("--服務器端已開啟--");

        //創建ServerSocket對象,這里的端口號必須與客戶端的端口號相同
        ServerSocket server = new ServerSocket(9000);

        //調用方法accept(),用來監聽客戶端發來的請求
        Socket socket = server.accept();

        //獲取輸入流對象
        InputStream is = socket.getInputStream();

        //讀取輸入流中的數據
        int b = 0;
        while ((b =is.read()) != -1){
            System.out.print((char)b);
        }
        //關閉流
        is.close();
        socket.close();
        server.close();
    }
}

提示:在運行程序時,一定要先運行服務器端的程序代碼,再運行客戶端的程序代碼。因為客戶端要向服務器發送請求,前提是服務器端要處于開啟狀態。

Server類(服務器端)運行結果:

--服務器端已開啟--

Client類(客戶端)運行結果:

信息已發送

Client類(客戶端)運行后,Server類(服務器端)收到信息,運行結果:

--服務器端已開啟--Java is my friend !

實例分析:

服務器端啟動后,服務器端的accept()方法一直處于監聽狀態,直到客戶端連接了服務器,服務器端再從流中讀取客戶端發來的數據。

恕我直言,這是一個超級無敵簡單的單向通信實例。

六、UDP編程

UDP使用數據報進行數據傳輸,沒有客戶端與服務器端之分,只有發送方與接收方,兩者哪個先啟動都不會報錯,但是會出現數據丟包現象。發送的內容有字數限制,大小必須限制在64k以內。

發送方與接收方實現步驟:

前提:創建一個項目,在項目中創建兩個模塊(model),一個模塊用來放發送方相關代碼,一個模塊用來放接收方相關代碼。

目錄結構如下圖

發送方:

1、創建DatagramSocket對象,可以指定應用程序的端口號,也可以不指定。

2、準備需要發送的數據

3、創建DatagramPacket對象,用來對發送的數據進行打包,需要指定發送內容、發送多少、發送到哪里和接收方的端口號四個參數。

4、調用DatagramSocket對象的send()方法發送數據。

5、記得關閉流。

接收方:

1、創建DatagramSocket對象,指定接收方的端口號,這個必須指定。

2、創建一個byte類型數組,用來接收發送方發送過來的數據。

3、創建DatagramPacket對象,準備接收數據。

4、調用DatagramSocket對象的receive()方法用于接收數據。

5、使用String類的構造方法將byte類型的數組中的數據轉化成String類型并顯示。

6、記得關閉流。

實例:

發送方發送信息,接收方接收信息,并顯示。

Sender類(發送方)

package cn.tkrnet.Sender;

import java.io.IOException;
import java.net.*;

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

        //創建接受或發送的數據報套接字,并指定發送方的端口號為7770
        DatagramSocket ds = new DatagramSocket(7770);   //端口號也可以不指定
        System.out.println("---發送方---");

        //創建數據報對象,用來發送數據
        byte[] b = "Java is my friend !".getBytes();

        //8800為接收方的端口號,netAddress.getByName("localhost")是獲取主機的IP地址
        DatagramPacket dp = new DatagramPacket(b,b.length, InetAddress.getByName("localhost"),7788);

        ds.send(dp);    //發送數據報
        System.out.println("數據已發送");
        //關閉流
        ds.close();
    }
}

Receiver類(接收方)

package cn.tkrnet.receiver;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;

public class Receiver {
    public static void main(String[] args) throws IOException {
        System.out.println("---接收方---");

        //創建數據報套接字對象,指定的端口號要和發送方發送數據的端口號相同
        // (不是發送方的端口號7770,是發送方發送數據的端口號7788)
        DatagramSocket ds = new DatagramSocket(7788);

        //創建接收數據報的對象
        byte[] b = new byte[1024];
        DatagramPacket dp = new DatagramPacket(b,b.length);

        //接收數據
        ds.receive(dp);
        System.out.println(new String(b,0,dp.getLength()));
        //關閉流
        ds.close();
    }
}

提示:在運行程序時,先運行發送方程序,還是先運行接收方程序都不會報錯,但是有可能會出現數據丟包,一般我們都先運行接收方的程序代碼,再運行發送方的程序代碼。

Receiver類(接收方)運行結果:

---接收方---

Sender類(發送方)運行結果:

---發送方---數據已發送

Sender類(發送方)運行后,Receiver類(接收方)接收到信息,運行結果:

---接收方---Java is my friend !

實例分析:

只有接收方先啟動運行,才會存在端口號為7788的程序,發送方才能發送數據到指定端口號7788,接收方才能接收數據。

不瞞你說,這也是個超級無敵簡單的單向通信實例。

七、總結

到此這篇關于深入理解TCP協議與UDP協議的原理及區別的文章就介紹到這了,更多相關TCP協議與UDP協議內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • C語言編寫基于TCP和UDP協議的Socket通信程序示例
  • 使用C#實現基于TCP和UDP協議的網絡通信程序的基本示例
  • C#獲取Windows進程監聽的TCP/UDP端口實例
  • java 基礎知識之網絡通信(TCP通信、UDP通信、多播以及NIO)總結
  • java中TCP/UDP詳細總結
  • Python網絡編程之TCP與UDP協議套接字用法示例
  • tcp、udp、ip協議分析_動力節點Java學院整理
  • python網絡編程 使用UDP、TCP協議收發信息詳解

標簽:忻州 無錫 阜陽 青海 哈密 河源 紅河 沈陽

巨人網絡通訊聲明:本文標題《深入理解TCP協議與UDP協議的原理及區別》,本文關鍵詞  深入,理解,TCP,協議,與,UDP,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《深入理解TCP協議與UDP協議的原理及區別》相關的同類信息!
  • 本頁收集關于深入理解TCP協議與UDP協議的原理及區別的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    国内精品国产成人国产三级粉色| av爱爱亚洲一区| 天天综合色天天| 国产成人在线影院| 日韩一卡二卡三卡国产欧美| 亚洲精品一二三四区| 一本久久综合亚洲鲁鲁五月天 | 欧美日韩久久久| 精品电影一区二区| 国产精品一品视频| 91精品国产综合久久精品| 一区二区三区国产| 96av麻豆蜜桃一区二区| 中文字幕不卡一区| 成人av中文字幕| 国产精品五月天| 成人av网址在线观看| 日韩午夜电影av| 国产久卡久卡久卡久卡视频精品| 在线成人午夜影院| 亚洲成人一二三| 精品污污网站免费看| 亚洲一区在线观看免费| 91精品国产91综合久久蜜臀| 日韩中文字幕不卡| 亚洲精品一区二区三区福利| 国产一区二区导航在线播放| 91精品国产91久久久久久最新毛片| 国产精品一区久久久久| 日本一区二区三区高清不卡 | 午夜激情久久久| 欧美日韩大陆一区二区| 视频一区二区中文字幕| 制服丝袜日韩国产| 99久精品国产| 亚洲在线视频网站| 欧美精品乱人伦久久久久久| 日韩激情中文字幕| 国产日韩欧美电影| 制服丝袜中文字幕一区| 美女脱光内衣内裤视频久久影院| 久久亚洲精华国产精华液| 国产成人免费视频| 亚洲一区成人在线| 欧美三级韩国三级日本一级| 成人小视频在线| 天天色天天爱天天射综合| 精品av久久707| 色av综合在线| 一区二区高清视频在线观看| 91麻豆精品久久久久蜜臀 | 看片网站欧美日韩| 一区二区中文字幕在线| 日韩欧美一区在线| 亚洲午夜影视影院在线观看| 国产精品午夜久久| 91精品国产手机| 91视频国产观看| 国产高清亚洲一区| 国产成人精品亚洲777人妖| 麻豆成人91精品二区三区| 喷水一区二区三区| 蜜臀av性久久久久av蜜臀妖精| 丝袜美腿亚洲综合| 亚洲3atv精品一区二区三区| 亚洲小说欧美激情另类| 一区二区三区成人在线视频| 亚洲欧洲精品天堂一级 | 欧美电影一区二区| 久久国产人妖系列| 国产中文字幕精品| 国产·精品毛片| 狠狠狠色丁香婷婷综合久久五月| 精彩视频一区二区| 日韩—二三区免费观看av| 奇米综合一区二区三区精品视频| 亚洲色图欧洲色图婷婷| 亚洲大型综合色站| 亚洲一卡二卡三卡四卡五卡| 天天做天天摸天天爽国产一区 | 欧美经典一区二区| 精品国产成人在线影院| 日本一区二区成人| 久久久99免费| 亚洲男人天堂av| 亚洲天堂a在线| 三级欧美韩日大片在线看| 一区二区视频在线| 偷窥国产亚洲免费视频| 一区二区三区在线视频免费| 婷婷激情综合网| 免费在线观看不卡| jlzzjlzz亚洲日本少妇| 91麻豆.com| 欧美xxx久久| 久久久五月婷婷| 亚洲专区一二三| 五月天欧美精品| 国产成人综合自拍| 91在线观看视频| 精品区一区二区| 国产欧美精品日韩区二区麻豆天美| 伊人婷婷欧美激情| 亚洲福利一二三区| 国产精华液一区二区三区| 成人深夜在线观看| 亚洲成a人片在线不卡一二三区| 视频一区视频二区中文字幕| 蜜桃久久久久久| 国产精品正在播放| 乱一区二区av| 日韩黄色一级片| 亚洲欧美日韩在线不卡| 国产在线视频一区二区| 色狠狠一区二区| 日韩一区二区在线看| 亚洲精品中文在线影院| 五月开心婷婷久久| 欧美少妇一区二区| 欧美成人a∨高清免费观看| 亚洲一区二区三区美女| 国产在线视频不卡二| 宅男在线国产精品| 国产精品全国免费观看高清| 国产成人一区二区精品非洲| 国产一区二区不卡| 欧美第一区第二区| 国产亚洲精品久| 国产最新精品精品你懂的| 欧美日韩精品综合在线| 久久久久久久久久久久久女国产乱 | 精品国产免费人成电影在线观看四季| 国产夜色精品一区二区av| 久久国产尿小便嘘嘘尿| 在线观看视频一区| 亚洲国产aⅴ成人精品无吗| 国产成人亚洲综合a∨猫咪| 久久久久久久久久久久电影 | 国产精品高潮呻吟| 天天av天天翘天天综合网 | 国产综合久久久久久鬼色 | 久久欧美中文字幕| 国产乱妇无码大片在线观看| 欧美精品久久99| 欧美aaaaa成人免费观看视频| 成人午夜视频福利| 自拍偷拍欧美激情| 懂色av中文字幕一区二区三区 | 亚洲欧美色图小说| 91丨porny丨国产入口| 欧洲激情一区二区| 五月天视频一区| 91福利视频久久久久| 色av成人天堂桃色av| 国产色91在线| 91丨九色porny丨蝌蚪| 国产精品久久毛片a| 国产乱码精品一品二品| 日韩欧美中文字幕制服| 国内精品视频一区二区三区八戒| 欧美区一区二区三区| 国产在线播放一区二区三区| 欧美久久一区二区| 国产成人午夜视频| 亚洲品质自拍视频| 欧洲一区二区三区在线| 男人操女人的视频在线观看欧美| 色婷婷综合久久久久中文一区二区| 亚洲电影一区二区三区| 欧美在线免费观看亚洲| 国产在线精品一区在线观看麻豆| 26uuu亚洲综合色| 欧美在线free| 石原莉奈在线亚洲三区| 国产午夜精品久久| a在线欧美一区| 日本女人一区二区三区| 色哟哟一区二区在线观看| 精品一区二区成人精品| 亚洲一区二区三区爽爽爽爽爽| 4438亚洲最大| 91黄色在线观看| 视频一区二区三区在线| 欧美激情在线观看视频免费| 99久久国产免费看| 精品制服美女丁香| 国产精品视频一区二区三区不卡| 欧美一区二区黄色| 日韩avvvv在线播放| 国产精品久久久久久亚洲毛片 | 91福利视频久久久久| 国产成人精品一区二区三区四区 | 亚洲欧美一区二区三区极速播放 | 91亚洲精品久久久蜜桃| 国产一区二区免费视频| 亚洲精品中文在线| 国产精品超碰97尤物18| 91精品黄色片免费大全| 欧美影院午夜播放| 五月激情丁香一区二区三区|