国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

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

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

3天內不再提示

Socket通信正確流程是怎樣?

黃工的嵌入式技術圈 ? 來源:黃工的嵌入式技術圈 ? 作者:黃工的嵌入式技術 ? 2020-01-16 10:33 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

我微信公開之后,加我的人也越來越多,也就會經常收到各種各樣的消息。

有些消息我看到之后立馬就回復了,有些消息我看到之后真的不想回復。比如:在嗎?

關于“在嗎?”這個問題,我在這里統一回復:以后微信找我有話直說,不要老是在嗎在嗎,不出意外的話,幾十年內我都是在的。

三次握手,通信還是失敗了:

上面這個通信,三次握手都失敗了,看著確實讓人著急。當然,本文說的重點是:Socket網絡通信

一、關于Socket

學習過網絡編程,或者網絡開發的朋友都應該聽說過socket。

socket又叫套接字,是一個抽象層,應用程序可以通過它發送或接收數據,可對其進行像對文件一樣的打開、讀寫和關閉等操作。套接字允許應用程序將I/O插入到網絡中,并與網絡中的其他應用程序進行通信。網絡套接字是IP地址與端口的組合。

Socket是網絡通訊經常采用的一種方式,它不是一個具體的物件也不是像http類的通訊協議。你可以把它看成是一組基于TCP和UDP通信協議的接口,Socket其實就是一個門面模式,它把復雜的TCP/IP協議族隱藏在Socket接口后面,對用戶來說,一組簡單的接口就是全部,讓Socket去組織數據,以符合指定的協議。

二、Socket基本概念

在了解Socket之前你需要對計算機通訊的分層有個大概的了解,網絡七層協議,OSI:Open System Interconnection,也叫開放式系統互聯參考模型。

這里不詳解OSI,放一張很好的圖分享給大家:

上面圖詳細講了基本整個計算機通信的分層架構,很多我也不了解沒我們只看我們關心的TCP/IP,其分層簡化圖示如下:

三、理解Socket

好,了解了基本分層機構后,我們現在來形象的理解一下Socket到底是什么。這里有一個很形象的實例可以幫助我們很好的理解Socket,以物流為例。

我們要傳送的數據就是物流中的貨物,ip就是發貨人和收貨人的聯系方式,那么Socket是什么?大家想想這送貨這這一流程還缺少啥?對呀,物流公司啊,對吧!物流公司就是那個Socket,他負責幫你處理送貨的瑣碎事情,比如你的貨物該怎么打包、該怎么防止易碎物品破碎、該用什么方式運輸、等等,如果是境外貨物還牽涉到報關等等一系列復雜瑣碎的事情,這些物流公司(Socket)幫你處理好了。示意圖如下:

四、理解TCP與UDP的區別以及三次握手和四次揮手

然后我們來說一下TCP和UDP的區別。前面講到Socket就相當于是物流公司,那么TCP協議就相當于是:假設你是寄貨方,你要寄給你朋友一份禮物,你首先得去物流公司去寄,這樣你在物流公司就相當于建立了一個事物(Socket實例)。然后物流公司有兩種服務方式讓你選擇(TCP和UDP)。

先說TCP,TCP這個協議它比較保守,物流公司說我必須確保你朋友會接收這份禮物,不然它不送。于是物流公司就回去聯系你朋友。然后聯系內容大致如下:

物流:你好,我這里有個你朋友寄的禮物要給你,你收嗎? 你朋友:OK,收,什么時候發,多久到? 物流:現在就發,大概要12小時到。

然后物流才開始發貨,并且會給你們一個物流單號,這個單號就是關于這份貨物你和你朋友的發貨收貨憑證。這就是所謂的三次握手。示意圖:

物流發送完后還會聯系你朋友,大致對話內容:

物流:你好,貨物已發送,請注意查收 你朋友:好的。 貨物送到,你朋友:OK,貨物收到,你們可以結案 物流:好的,我結案了。

這就是所謂的四次揮手(拜拜);

(注釋:三次握手四次揮手這都是Socket在你建立的時候根據你選擇的協議確定好的)

這樣是不是很麻煩,估計也就順豐有這服務了,其他大部分公司還是沒有這么貼心的服務的,他們可能就是UDP協議方式了。

UDP比較簡單,當你用物流(Socket)寄貨物的時候物流公司并不會管你朋友是否能聯系上,是否愿意接收,它只負責將你的貨物發出去就完事。這中間是不需要通知你朋友的,你和你朋友也不需要有連接,這就是所謂的無連接。

五、兩種協議區別

UDP 常用于一次性傳輸比較少量數據的網絡應用中,UDP 也常用于多媒體應用(如 IP 電話、實時視頻會議、流媒體等),顯然,可靠數據傳輸對于這些應用來說并不是最重要的,但 TCP 的擁塞控制會導致數據出現較大的延遲,這是它們不能容忍的,我們最熟悉的視頻通話大部分就是用的UDP協議。

TCP面向連接,即發送數據之前需要建立連接,并且TCP是擁有擁塞機制的,當前部分數據還沒有被接收完,后部分的數據會被阻塞知道前部分數據傳遞OK后才會繼續傳遞后半部分,所以通過TCP連接傳送的數據,無差錯,不丟失,不重復,且按序到達;在數據完整性、安全性要求較高的場景需要使用TCP協議,比如你傳送重要辦公文件、圖片等,這些東西丟包都是會影響數據品質的。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 通信
    +關注

    關注

    18

    文章

    6391

    瀏覽量

    140038
  • Socket
    +關注

    關注

    1

    文章

    214

    瀏覽量

    36908
  • 物流
    +關注

    關注

    1

    文章

    332

    瀏覽量

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

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    TCP/IP(Socket)協議深度剖析

    TCP/IP協議作為互聯網通信的基礎架構,其核心機制Socket編程承載著全球數據交換的使命。本文將深入剖析這一協議的七層架構、三次握手與四次揮手的精妙設計、流量控制與擁塞控制的動態平衡,以及現代互聯網環境下面臨的挑戰與演進方向。
    的頭像 發表于 03-03 17:06 ?460次閱讀

    輕松掌握——LuatOS socket基礎知識和應用開發

    對于剛接觸LuatOS開發的工程師而言,實現設備聯網往往是第一個重要目標,而Socket編程正是實現這一目標的核心技術路徑。本文以循序漸進的方式,帶領讀者從最基礎的Socket概念入手,逐步掌握在
    的頭像 發表于 01-28 20:07 ?172次閱讀
    輕松掌握——LuatOS  <b class='flag-5'>socket</b>基礎知識和應用開發

    智能顯示模塊通過串口通信時,如何知道已正確接收?如何判斷通信的指令符合協議?

    智能顯示模塊通過串口通信時,如何知道已正確接收?如何判斷通信的指令符合協議?
    發表于 12-15 08:22

    socket是什么

    Socket(套接字)是計算機網絡中的一個概念,它指示了一個可以進行網絡通信的軟件端點。通過使用Socket,計算機程序可以通過網絡進行通信Soc
    發表于 12-03 08:27

    淺談衛星通信的運作流程

    其實,衛星通信遠非 “衛星直接連接電話” 那么簡單 —— 從地面信號發出到終端接收,背后藏著一套精準協同的 “天地協作” 邏輯。今天,我們就帶大家看懂衛星通信的完整運作流程
    的頭像 發表于 10-22 14:25 ?1438次閱讀
    淺談衛星<b class='flag-5'>通信</b>的運作<b class='flag-5'>流程</b>

    rtthread v5.0.1 , at socket使用select函數不能監控多個socket fd的問題,怎么解決?

    我最近使用at socket ,at device 組件創建tcpclient,使用select函數實現,發現select只能監控一個socket fd,監控兩個socket fd就不能正常接收
    發表于 10-13 06:05

    ESP8266 socket通信,串口溢出怎么解決?

    1、硬件平臺:原子精英板 stm32f103zet6+esp8266 開發板作為client,網絡調試助手模擬server 學習研究AT SOCKET有一段時間了,之前逛論壇提問解決了一些問題。遇到
    發表于 09-28 13:42

    alloc_socket在不斷創建socket時會不斷新建信號量和互斥鎖,導致內存泄漏,怎么解決?

    alloc_socket在不斷創建socket時會不斷新建信號量和互斥鎖,導致內存泄漏。 修改前: static struct wiz_socket *alloc_socket(vo
    發表于 09-10 08:22

    請問at_device不用at socket能使用bsd socket嗎?

    at_device不用at socket能使用bsd socket嗎?
    發表于 09-10 08:04

    GraniStudio : TCP/IP(Socket)協議深度剖析

    在工業自動化與物聯網領域,TCP/IP(Socket)協議作為應用最廣泛的網絡通信標準,是實現設備間數據交互的核心技術。GraniStudio 軟件作為工業級零代碼開發平臺,其內置的 TCP/IP
    的頭像 發表于 08-03 22:20 ?1188次閱讀
    GraniStudio : TCP/IP(<b class='flag-5'>Socket</b>)協議深度剖析

    第二十五章 W55MH32 TCP_Server_Multi_Socket示例

    本文講解了如何在 W55MH32?芯片上使用 8?個 socket?實現 TCP?服務器模式,讓多個客戶端連接進行數據回環測試,通過實戰例程展示了從初始化 socket?到監聽端口、處理客戶端連接
    的頭像 發表于 07-24 16:10 ?1118次閱讀
    第二十五章 W55MH32 TCP_Server_Multi_<b class='flag-5'>Socket</b>示例

    第二十四章 W55MH32TCP_Client_Multi_Socket示例

    本文講解了如何在 W55MH32?芯片上使用 8?個 socket?實現 TCP?客戶端模式,同時連接 1?個服務器進行數據回環測試,通過實戰例程展示了從初始化 socket?到建立連接、數據交互
    的頭像 發表于 07-24 16:08 ?993次閱讀
    第二十四章 W55MH32TCP_Client_Multi_<b class='flag-5'>Socket</b>示例

    CPU Socket的基本結構和工作原理

    CPU Socket是連接中央處理單元(CPU)與計算機主板之間的關鍵部件,它充當著傳遞電信號、電源和散熱等多重功能的樞紐。在整個計算機系統中,CPU Socket的作用至關重要,尤其在高性能計算
    的頭像 發表于 05-08 17:14 ?2426次閱讀

    在KaihongOS應用開發中,如何利用Socket進行數據傳輸

    參考:@ohos.net.socket (Socket連接)。 應用 TCP/UDP 協議進行通信 UDP 與 TCP 流程大體類似,下面以 TCP 為例: import 需要的
    發表于 05-08 07:25

    智慧路燈的安裝流程怎樣

    了新的活力。而規范、科學的安裝流程,則是確保叁仟智慧路燈能夠穩定運行、充分發揮其功能的基礎。深入了解叁仟智慧路燈的安裝流程,不僅有助于施工團隊高效開展工作,更能為智慧城市建設的穩步推進提供有力保障。接下來,將從前期規劃
    的頭像 發表于 04-27 17:22 ?869次閱讀