一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

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

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

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

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

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

掃碼添加小助手

加入工程師交流群

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

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

一、IP地址

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

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

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

二、端口號

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

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

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

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

三、通信協(xié)議

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

第一種:TCP協(xié)議

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

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

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

第二種:UDP協(xié)議

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

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

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

四、三要素關系圖與網(wǎng)絡模型圖

1、網(wǎng)絡編程三要素關系圖

圖片

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

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

圖片

五、TCP編程

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

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

客戶端與服務器端圖解:

圖片

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

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

目錄結構如下圖

圖片

客戶端

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

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

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

4、記得關閉流。

服務器端

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

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

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

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

5、記得關閉流。

實例

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

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

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

s

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

    關注

    28

    文章

    1037

    瀏覽量

    41185
  • TCP
    TCP
    +關注

    關注

    8

    文章

    1402

    瀏覽量

    81056
  • UDP
    UDP
    +關注

    關注

    0

    文章

    330

    瀏覽量

    34663
  • ip地址
    +關注

    關注

    0

    文章

    307

    瀏覽量

    18418
  • 網(wǎng)絡編程

    關注

    0

    文章

    72

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

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

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

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

    本章節(jié)主要介紹linxu網(wǎng)絡模型、以及常用的網(wǎng)絡協(xié)議分析以太網(wǎng)協(xié)議、IP協(xié)議、TCP協(xié)議UDP
    的頭像 發(fā)表于 10-28 16:44 ?4108次閱讀
    linxu網(wǎng)絡<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 ?2556次閱讀
    通信必備知識!<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)絡通信協(xié)議,也就是通信時都要遵守的規(guī)則,雙方在同規(guī)則下”交流”,才能理解或者為之服務.?、
    的頭像 發(fā)表于 09-11 09:02 ?3.1w次閱讀

    tcpudp協(xié)議的異同

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

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

    首先咱們弄清楚,TCP協(xié)議和UCP協(xié)議TCP/IP協(xié)議的聯(lián)系,很多人犯糊涂了,直都是說
    的頭像 發(fā)表于 05-26 14:35 ?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ū)別和相同點有哪些 <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)缺點

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

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

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

    網(wǎng)絡編程有三個要素,分別是IP地址、端口號和通信協(xié)議,那本文主要講述的是TCPUDP這兩種通信協(xié)議,以及編程的實現(xiàn)。 首先,我們需要了解
    的頭像 發(fā)表于 05-18 17:17 ?871次閱讀
    <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é)議,大家應該都有所耳聞。TCP協(xié)議
    發(fā)表于 06-15 09:37 ?961次閱讀
    <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é)議通過使用序列號、確認應
    的頭像 發(fā)表于 06-26 17:47 ?1.2w次閱讀

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

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