91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

一文搞明白TCP協(xié)議與UDP協(xié)議(上)

jf_78858299 ? 來源:Linux云計算網(wǎng)絡(luò) ? 作者:Linux云計算網(wǎng)絡(luò) ? 2023-05-18 17:17 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

網(wǎng)絡(luò)編程有三個要素,分別是IP地址、端口號和通信協(xié)議,那本文主要講述的是TCP與UDP這兩種通信協(xié)議,以及編程的實現(xiàn)。

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

一、IP地址

網(wǎng)絡(luò)中的計算機(jī)使用IP地址來進(jìn)行唯一標(biāo)識,IP地址有IPv4和IPv6兩種類型。IPv4采用十進(jìn)制或二進(jìn)制表示形式,十進(jìn)制是一種比較常用的表示形式,如192.168.1.131,IPv6采用十六進(jìn)制表示形式,一般不常用。

如何查看IP地址相關(guān)信息:

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

二、端口號

端口號是計算機(jī)中的應(yīng)用程序的一個整數(shù)數(shù)字標(biāo)號,用來區(qū)分不同的應(yīng)用程序。

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

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

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

三、通信協(xié)議

說得通俗一點(diǎn),通信協(xié)議就是網(wǎng)絡(luò)通信中的規(guī)則,分為TCP協(xié)議和UDP協(xié)議兩種。

第一種:TCP協(xié)議

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

舉例:打電話,需要雙方都接通,才能進(jìn)行對話

特點(diǎn):效率低,數(shù)據(jù)傳輸比較安全

第二種:UDP協(xié)議

英文名:User Datagram Protocol 中文名:數(shù)據(jù)報協(xié)議 協(xié)議說明:UDP是一種面向無連接的傳輸層通信協(xié)議。

舉例:發(fā)短信,不需要雙方建立連接,But,數(shù)據(jù)報的大小應(yīng)限制在64k以內(nèi)

特點(diǎn):效率高,數(shù)據(jù)傳輸不安全,容易丟包

四、三要素關(guān)系圖與網(wǎng)絡(luò)模型圖

1、網(wǎng)絡(luò)編程三要素關(guān)系圖

圖片

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

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

圖片

五、TCP編程

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

對于客戶端,我們需要使用Socket類來創(chuàng)建對象。對于服務(wù)器端,我們需要使用ServerSocket來創(chuàng)建對象,通過對象調(diào)用accept()方法來進(jìn)行監(jiān)聽是否有客戶端訪問。

客戶端與服務(wù)器端圖解:

圖片

客戶端與服務(wù)器端實現(xiàn)步驟:

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

目錄結(jié)構(gòu)如下圖

圖片

客戶端

1、創(chuàng)建Socket對象,并指定服務(wù)器端應(yīng)用程序的端口號和服務(wù)器端主機(jī)的IP地址。

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

3、調(diào)用字節(jié)輸出流的write(byte[] buf)或者write(int b)向服務(wù)器發(fā)送指定數(shù)據(jù)。

4、記得關(guān)閉流。

服務(wù)器端

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

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

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

4、調(diào)用字節(jié)輸入流對象的read(byte[] buf)或read()方法獲取數(shù)據(jù)。

5、記得關(guān)閉流。

實例

客戶端向服務(wù)器端發(fā)送信息,并顯示在服務(wù)器端。

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 {
        
        //創(chuàng)建Socket對象,指定要發(fā)送到服務(wù)器端的IP地址,以及服務(wù)器端應(yīng)用程序接收的端口號
        //localhost代表本機(jī)IP地址
        Socket client = new Socket("localhost",9000);
        
        //獲取輸出流,用于向服務(wù)器端發(fā)送數(shù)據(jù)
        OutputStream os = client.getOutputStream();
        
        os.write("Java is my friend !".getBytes());
        System.out.println("信息已發(fā)送");

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

s

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 通信協(xié)議
    +關(guān)注

    關(guān)注

    28

    文章

    1092

    瀏覽量

    42164
  • TCP
    TCP
    +關(guān)注

    關(guān)注

    8

    文章

    1425

    瀏覽量

    83517
  • UDP
    UDP
    +關(guān)注

    關(guān)注

    0

    文章

    334

    瀏覽量

    35421
  • ip地址
    +關(guān)注

    關(guān)注

    0

    文章

    309

    瀏覽量

    18941
  • 網(wǎng)絡(luò)編程
    +關(guān)注

    關(guān)注

    0

    文章

    73

    瀏覽量

    11112
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    TCP協(xié)議UDP協(xié)議對比 UDP協(xié)議的原理及應(yīng)用

    對延時或抖動要求很高的情景下并不適用。為此,UDP(User Datagram Protocol,用戶數(shù)據(jù)報協(xié)議)被提出。UDP雖然應(yīng)用較為廣泛,比如DNS查詢等,但直不是重要的角色
    的頭像 發(fā)表于 10-26 15:05 ?4274次閱讀
    <b class='flag-5'>TCP</b><b class='flag-5'>協(xié)議</b>和<b class='flag-5'>UDP</b><b class='flag-5'>協(xié)議</b>對比 <b class='flag-5'>UDP</b><b class='flag-5'>協(xié)議</b>的原理及應(yīng)用

    linxu網(wǎng)絡(luò)協(xié)議分析:IP協(xié)議、TCP協(xié)議、UDP協(xié)議

    本章節(jié)主要介紹linxu網(wǎng)絡(luò)模型、以及常用的網(wǎng)絡(luò)協(xié)議分析以太網(wǎng)協(xié)議、IP協(xié)議、TCP協(xié)議UDP
    的頭像 發(fā)表于 10-28 16:44 ?4541次閱讀
    linxu網(wǎng)絡(luò)<b class='flag-5'>協(xié)議</b>分析:IP<b class='flag-5'>協(xié)議</b>、<b class='flag-5'>TCP</b><b class='flag-5'>協(xié)議</b>、<b class='flag-5'>UDP</b><b class='flag-5'>協(xié)議</b>

    通信必備知識!TCPUDP協(xié)議介紹及使用

    TCPUDP是兩個最常用的通訊協(xié)議TCP是面向連接的協(xié)議,需要在收發(fā)數(shù)據(jù)前與對方建立可靠的連接,建立連接的過程為3次握手,斷開連接的過程
    的頭像 發(fā)表于 03-15 08:19 ?3275次閱讀
    通信必備知識!<b class='flag-5'>TCP</b>與<b class='flag-5'>UDP</b><b class='flag-5'>協(xié)議</b>介紹及使用

    TCP協(xié)議UDP協(xié)議的區(qū)別有哪些

    無法實現(xiàn);(3)TCP 協(xié)議有效載荷小于 UDP 協(xié)議(基于 MSS 計算),UDP 性能高于 TCP
    發(fā)表于 08-06 08:43

    TCPUDP協(xié)議簡析

    、前言TCPUDP協(xié)議TCP/IP協(xié)議的核心。TCP
    發(fā)表于 12-15 08:13

    通訊協(xié)議TCPUDP協(xié)議使用方法

    通訊協(xié)議TCPUDP協(xié)議UDP會把數(shù)據(jù)股腦兒地發(fā)送出去,并不會在意是否全部收到,適用于廣播類
    發(fā)表于 01-21 14:53

    (WiFi干貨)WiFi模塊的TCPUDP協(xié)議

    TCPUDP都是網(wǎng)絡(luò)通信協(xié)議,也就是通信時都要遵守的規(guī)則,雙方在同規(guī)則下”交流”,才能理解或者為之服務(wù).?
    的頭像 發(fā)表于 09-11 09:02 ?3.1w次閱讀

    tcpudp協(xié)議的異同

    UDP 協(xié)議 UDP 協(xié)議是無連接、不可靠的個傳輸層協(xié)議。下圖是
    的頭像 發(fā)表于 11-12 14:45 ?4937次閱讀
    <b class='flag-5'>tcp</b>和<b class='flag-5'>udp</b><b class='flag-5'>協(xié)議</b>的異同

    TCP協(xié)議UDP協(xié)議的區(qū)別和相同點(diǎn)有哪些 看懂TCP協(xié)議UDP協(xié)議的優(yōu)缺點(diǎn)

    首先咱們弄清楚,TCP協(xié)議和UCP協(xié)議TCP/IP協(xié)議的聯(lián)系,很多人犯糊涂了,直都是說
    的頭像 發(fā)表于 05-26 14:35 ?1.1w次閱讀
    <b class='flag-5'>TCP</b><b class='flag-5'>協(xié)議</b>與<b class='flag-5'>UDP</b><b class='flag-5'>協(xié)議</b>的區(qū)別和相同點(diǎn)有哪些 <b class='flag-5'>一</b><b class='flag-5'>文</b>看懂<b class='flag-5'>TCP</b><b class='flag-5'>協(xié)議</b>與<b class='flag-5'>UDP</b><b class='flag-5'>協(xié)議</b>的優(yōu)缺點(diǎn)

    TCP協(xié)議UDP協(xié)議的區(qū)別

    TCP/IP協(xié)議中有兩個具有代表性的傳輸層協(xié)議,分別是TCP協(xié)議UDP
    的頭像 發(fā)表于 03-21 10:39 ?1856次閱讀

    明白TCP協(xié)議UDP協(xié)議(下)

    網(wǎng)絡(luò)編程有三個要素,分別是IP地址、端口號和通信協(xié)議,那本文主要講述的是TCPUDP這兩種通信協(xié)議,以及編程的實現(xiàn)。 首先,我們需要了解
    的頭像 發(fā)表于 05-18 17:17 ?1139次閱讀
    <b class='flag-5'>一</b><b class='flag-5'>文</b><b class='flag-5'>搞</b><b class='flag-5'>明白</b><b class='flag-5'>TCP</b><b class='flag-5'>協(xié)議</b>與<b class='flag-5'>UDP</b><b class='flag-5'>協(xié)議</b>(下)

    TCP協(xié)議UDP協(xié)議最核心的區(qū)別是什么?

    對于TCP協(xié)議UDP協(xié)議,大家應(yīng)該都有所耳聞。TCP協(xié)議
    發(fā)表于 06-15 09:37 ?1345次閱讀
    <b class='flag-5'>TCP</b><b class='flag-5'>協(xié)議</b>和<b class='flag-5'>UDP</b><b class='flag-5'>協(xié)議</b>最核心的區(qū)別是什么?

    udp是什么協(xié)議 TCPUDP的區(qū)別

    TCP協(xié)議提供可靠的數(shù)據(jù)傳輸,UDP協(xié)議提供盡量高效的數(shù)據(jù)傳輸。TCP協(xié)議通過使用序列號、確認(rèn)應(yīng)
    的頭像 發(fā)表于 06-26 17:47 ?1.3w次閱讀

    TCP/IP協(xié)議進(jìn)階課程:5、UDP協(xié)議

    電子發(fā)燒友網(wǎng)站提供《TCP/IP協(xié)議進(jìn)階課程:5、UDP協(xié)議.pdf》資料免費(fèi)下載
    發(fā)表于 07-31 11:48 ?0次下載
    <b class='flag-5'>TCP</b>/IP<b class='flag-5'>協(xié)議</b>進(jìn)階課程:5、<b class='flag-5'>UDP</b><b class='flag-5'>協(xié)議</b>

    TCP協(xié)議UDP協(xié)議的區(qū)別

    1. 連接性 TCP(傳輸控制協(xié)議) : 面向連接 :在數(shù)據(jù)傳輸之前,TCP需要建立個連接,這通過三次握手過程完成。 可靠性 :旦連接建
    的頭像 發(fā)表于 01-22 09:44 ?2351次閱讀