chinese直男口爆体育生外卖, 99久久er热在这里只有精品99, 又色又爽又黄18禁美女裸身无遮挡, gogogo高清免费观看日本电视,私密按摩师高清版在线,人妻视频毛茸茸,91论坛 兴趣闲谈,欧美 亚洲 精品 8区,国产精品久久久久精品免费

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

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

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

誰來解答一下Socket究竟是什么?

strongerHuang ? 來源:strongerHuang ? 作者:strongerHuang ? 2021-05-23 15:03 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

網(wǎng)絡(luò)通信與我們生活息息相關(guān),特別是今天發(fā)達(dá)的智能手機(jī)、物聯(lián)網(wǎng)這些都離不開網(wǎng)絡(luò)通信。今天分享一下關(guān)于Socket網(wǎng)絡(luò)通信的內(nèi)容。

1 關(guān)于Socket

學(xué)習(xí)過網(wǎng)絡(luò)編程,或者網(wǎng)絡(luò)開發(fā)的朋友都應(yīng)該聽說過socket。

socket又叫套接字,是一個(gè)抽象層,應(yīng)用程序可以通過它發(fā)送或接收數(shù)據(jù),可對(duì)其進(jìn)行像對(duì)文件一樣的打開、讀寫和關(guān)閉等操作。套接字允許應(yīng)用程序?qū)/O插入到網(wǎng)絡(luò)中,并與網(wǎng)絡(luò)中的其他應(yīng)用程序進(jìn)行通信。網(wǎng)絡(luò)套接字是IP地址與端口的組合。

誰來解答一下Socket究竟是什么?

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

2 Socket基本概念

在了解Socket之前你需要對(duì)計(jì)算機(jī)通訊的分層有個(gè)大概的了解,網(wǎng)絡(luò)七層協(xié)議,OSI:Open System Interconnection,也叫開放式系統(tǒng)互聯(lián)參考模型。

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

上面圖詳細(xì)講了基本整個(gè)計(jì)算機(jī)通信的分層架構(gòu),很多我也不了解沒我們只看我們關(guān)心的TCP/IP,其分層簡化圖示如下:

誰來解答一下Socket究竟是什么?

3 理解Socket了解了基本分層機(jī)構(gòu)后,我們現(xiàn)在來形象的理解一下Socket到底是什么。這里有一個(gè)很形象的實(shí)例可以幫助我們很好的理解Socket,以物流為例。

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

誰來解答一下Socket究竟是什么?

4 TCP與UDP的區(qū)別以及三次握手和四次揮手

前面講到Socket就相當(dāng)于是物流公司,那么TCP協(xié)議就相當(dāng)于是:假設(shè)你是寄貨方,你要寄給你朋友一份禮物,你首先得去物流公司去寄,這樣你在物流公司就相當(dāng)于建立了一個(gè)事物(Socket實(shí)例)。然后物流公司有兩種服務(wù)方式讓你選擇(TCP和UDP)。

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

物流:你好,我這里有個(gè)你朋友寄的禮物要給你,你收嗎?你朋友:OK,收,什么時(shí)候發(fā),多久到?物流:現(xiàn)在就發(fā),大概要12小時(shí)到。

然后物流才開始發(fā)貨,并且會(huì)給你們一個(gè)物流單號(hào),這個(gè)單號(hào)就是關(guān)于這份貨物你和你朋友的發(fā)貨收貨憑證。這就是所謂的三次握手。示意圖:

誰來解答一下Socket究竟是什么?

物流發(fā)送完后還會(huì)聯(lián)系你朋友,大致對(duì)話內(nèi)容:

物流:你好,貨物已發(fā)送,請(qǐng)注意查收你朋友:好的。貨物送到,你朋友:OK,貨物收到,你們可以結(jié)案物流:好的,我結(jié)案了。

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

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

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

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

5 兩種協(xié)議區(qū)別

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

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

責(zé)任編輯:lq6

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

    關(guān)注

    1

    文章

    213

    瀏覽量

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

    關(guān)注

    8

    文章

    1412

    瀏覽量

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

    關(guān)注

    0

    文章

    331

    瀏覽量

    35053
  • 端口
    +關(guān)注

    關(guān)注

    4

    文章

    1090

    瀏覽量

    33544

原文標(biāo)題:Socket通信原理

文章出處:【微信號(hào):strongerHuang,微信公眾號(hào):strongerHuang】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

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

掃碼添加小助手

加入工程師交流群

    評(píng)論

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

    qkey軟件包在內(nèi)核V5.02運(yùn)行出錯(cuò)是哪里的問題?

    ) == RT_Object_Class_Memory) assertion failed at function:rt_smem_alloc, line number:290 ; 然后內(nèi)核改成V4.1.1就沒任何問題。 因?yàn)関5.0.2引入backtrace也始終有編譯問題,所以不好跟蹤
    發(fā)表于 09-15 07:46

    超聲波液位計(jì)究竟是什么?

    液位計(jì)
    jzyb
    發(fā)布于 :2025年06月03日 16:10:12

    FOC電機(jī)控制究竟該如何學(xué)?

    學(xué)習(xí)FOC電機(jī)控制究竟是學(xué)哪些內(nèi)容? 電機(jī)知識(shí) 軟件知識(shí) 純分享貼,有需要可以直接下載附件獲取完整資料! (如果內(nèi)容有幫助可以關(guān)注、點(diǎn)贊、評(píng)論支持一下哦~)
    發(fā)表于 05-09 14:09

    帶你參觀一下射頻工程師的試驗(yàn)臺(tái)

    大家好,每個(gè)射頻工程師都有個(gè)自己的試驗(yàn)臺(tái),別人的試驗(yàn)臺(tái)究竟是什么樣子的呢?君鑒科技今天帶你參觀一下別人的試驗(yàn)臺(tái)。看,工作起來多認(rèn)真!靜電服
    的頭像 發(fā)表于 04-30 18:34 ?267次閱讀
    帶你參觀<b class='flag-5'>一下</b>射頻工程師的試驗(yàn)臺(tái)

    工程師在產(chǎn)品選型的時(shí)究竟是選CAN還是CANFD接口卡呢?

    很多工程師在產(chǎn)品選型的時(shí)候會(huì)疑惑,究竟是選CAN接口卡還是CANFD接口卡呢?兩者之間有什么區(qū)別呢?影響選擇的關(guān)鍵因素又是什么?我們今天一個(gè)一個(gè)來拆解。1.波特率傳統(tǒng)的CAN接口卡僅有個(gè)波特率,即
    的頭像 發(fā)表于 03-21 11:37 ?604次閱讀
    工程師在產(chǎn)品選型的時(shí)<b class='flag-5'>究竟是</b>選CAN還是CANFD接口卡呢?

    單片機(jī):請(qǐng)問一下圖中題目怎么解答?

    請(qǐng)問一下圖中題目怎么解答
    發(fā)表于 03-19 20:19

    室內(nèi)導(dǎo)航究竟是如何實(shí)現(xiàn)的

    作為物聯(lián)網(wǎng)智能硬件的引領(lǐng)者,云里物里當(dāng)然不是來聊電影的,而是想借此機(jī)會(huì),和大家探討一下:室內(nèi)導(dǎo)航究竟是如何實(shí)現(xiàn)的?它背后的技術(shù)原理是什么?接下來,讓我們起揭開室內(nèi)導(dǎo)航的神秘面紗。
    的頭像 發(fā)表于 02-12 13:50 ?771次閱讀

    ADS1298R PACE_OUT1和PACE_OUT2這兩條引腿究竟是輸入還是輸出?有什么用?怎樣使用?

    PACE_OUT1和PACE_OUT2這兩條引腿究竟是輸入還是輸出?有什么用?怎樣使用?
    發(fā)表于 02-12 07:56

    ADS1281EVM-PDK板子無法使用怎么解決?

    板子上正負(fù)10V電壓已加,USBStyx driver 已經(jīng)安裝,通過母板供電,但最后 軟件界面上的Acquire 按鍵呈現(xiàn)灰白色,無法按,如下圖紅圈區(qū)域所示: 有哪位能告訴我究竟是哪里出了問題?該不會(huì)是硬件壞了吧?
    發(fā)表于 01-22 07:54

    ΔΣADC的疑惑誰來解答一下?

    發(fā)送的計(jì)算是否正確?  謝謝你的耐心解答,我還有個(gè)問題,   1、在配置16個(gè)輸入為8差分時(shí),AINCOM如何處理,接地還是懸空?   2、另外在差分模式MUXOUTP和MUXOUTN輸出接全差分運(yùn)
    發(fā)表于 01-20 09:42

    ADS1118 spi通信時(shí)序的問題誰來解答一下

    我用ADS1118做4路單端模擬信號(hào)的采集,按照DATASHEET 上的SPI時(shí)序從SDI引腳輸入4BYTE的數(shù)據(jù)(配置字發(fā)送2次),SDO引腳直保持為高電平。請(qǐng)問這是何種原因?望解答。 請(qǐng)問
    發(fā)表于 01-20 08:40

    關(guān)于ads8344有些問題誰來解答一下

    ADS8344關(guān)于ads8344有些問題想咨詢一下1、模擬輸入通道的輸入阻抗是多少 2、怎么配置為單端8路輸入,單端輸入的時(shí)候,數(shù)據(jù)位最高位是否還有效,是不是不再是表示正負(fù),只是數(shù)據(jù)位。 3、電源
    發(fā)表于 01-20 08:25

    嵌入式和人工智能究竟是什么關(guān)系?

    嵌入式和人工智能究竟是什么關(guān)系? 嵌入式系統(tǒng)是種特殊的系統(tǒng),它通常被嵌入到其他設(shè)備或機(jī)器中,以實(shí)現(xiàn)特定功能。嵌入式系統(tǒng)具有非常強(qiáng)的適應(yīng)性和靈活性,能夠根據(jù)用戶需求進(jìn)行定制化設(shè)計(jì)。它廣泛應(yīng)用于各種
    發(fā)表于 11-14 16:39

    PCM1861 INT腳究竟是輸出還是輸入?

    這個(gè)芯片activce或是idle. 是否有人解釋,INT腳究竟是輸出還是輸入。我希望是輸出,我需要讀取到是否有analog audio輸入的信息。 或者,輸入輸出與否還要靠其他什么地方設(shè)置? 盼望有人回復(fù)解答,不勝感激!
    發(fā)表于 10-29 07:29

    超高頻讀寫器究竟是什么,能做什么?文讀懂!

    在物聯(lián)網(wǎng)技術(shù)日新月異的今天,超高頻讀寫器作為射頻識(shí)別(RFID)技術(shù)的重要組成部分,正逐漸滲透到我們生活的各個(gè)領(lǐng)域。那么,超高頻讀寫器究竟是什么?它又能做些什么呢?本文將帶您一探究竟。、超高頻
    的頭像 發(fā)表于 10-23 14:41 ?1087次閱讀
    超高頻讀寫器<b class='flag-5'>究竟是</b>什么,能做什么?<b class='flag-5'>一</b>文讀懂!