成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

C/C++應(yīng)用:深入理解Socket網(wǎng)絡(luò)通信

網(wǎng)絡(luò) 網(wǎng)絡(luò)管理 后端
Socket其實就是一個門面模式,它把復(fù)雜的TCP/IP協(xié)議族隱藏在Socket接口后面,對用戶來說,一組簡單的接口就是全部,讓Socket去組織數(shù)據(jù),以符合指定的協(xié)議。

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

Socket基本概念

在了解Socket之前你需要對計算機通訊的分層有個大概的了解,具體講解我在這里就不講了,放一張很好的圖分享給大家:

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

理解Socket

好,了解了基本分層機構(gòu)后,我們現(xiàn)在來形象的理解一下Socket到底是什么。我這里有一個很形象的實例可以幫助我們很好的理解Socket,這也是我當(dāng)初在學(xué)習(xí)Socket編程時自己領(lǐng)悟出來的,那就是物流。

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

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

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

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

物流:你好,我這里有個你朋友寄的禮物要給你,你收嗎?

你朋友:OK,收,什么時候發(fā),多久到?

物流:現(xiàn)在就發(fā),大概要12小時到。

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

C/C++應(yīng)用:深入理解Socket網(wǎng)絡(luò)通信

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

物流:你好,貨物已發(fā)送,請注意查收

你朋友:好的。

貨物送到,你朋友:OK,貨物收到,你們可以結(jié)案

物流:好的,我結(jié)案了。

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

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

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

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

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

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

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

責(zé)任編輯:趙寧寧 來源: 今日頭條
相關(guān)推薦

2024-04-10 12:14:36

C++指針算術(shù)運算

2022-05-06 16:18:00

Block和 C++OC 類lambda

2023-12-31 12:56:02

C++內(nèi)存編程

2023-09-12 11:44:02

C++數(shù)據(jù)對齊

2022-02-16 12:52:22

C++項目編譯器

2024-10-31 10:03:17

2011-08-22 13:57:55

gtest

2015-12-28 11:25:51

C++異常處理機制

2024-07-25 14:18:29

2023-10-04 00:04:00

C++extern

2024-05-17 12:56:09

C#編程線程

2024-03-28 18:12:28

指針函數(shù)指針C++

2009-08-24 17:20:13

C#網(wǎng)絡(luò)通信TCP連接

2023-11-22 13:40:17

C++函數(shù)

2024-04-11 14:04:23

C++編程函數(shù)

2009-09-08 16:25:19

C#委托

2020-06-01 21:07:33

C11C++11內(nèi)存

2024-05-11 07:13:33

C#Task編程

2024-10-11 11:54:14

C#編寫異步

2019-08-23 12:49:18

USB通信協(xié)議
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 99免费视频 | 亚洲一区二区在线视频 | 成人 在线| 亚洲精品一区二区网址 | 久久精品二区亚洲w码 | 国产高清视频在线观看 | 欧美性猛交一区二区三区精品 | 欧美日韩一区二区三区不卡视频 | 成人午夜黄色 | 亚洲一区二区不卡在线观看 | 亚洲 欧美 另类 综合 偷拍 | 亚洲xxxxx| 日日日日操 | 一级一片在线观看 | 亚洲第一视频网站 | 草久久免费视频 | 欧美精品一区在线 | 日本精品999| 成人三级在线播放 | 一区二区三区亚洲精品国 | 在线观看国产视频 | 国内精品久久影院 | 婷婷亚洲综合 | 国产丝袜一区二区三区免费视频 | 欧美在线成人影院 | 精品一区二区三区日本 | 精品国产亚洲一区二区三区大结局 | 国产成人高清在线观看 | 国产精品久久久久久久久久99 | 日韩在线免费 | 精品国产99 | 久久新 | 一区二区三区亚洲 | 欧美精品一区二区三区四区 在线 | 精品国产乱码久久久久久丨区2区 | 欧美日韩亚洲国产 | 一本久久a久久精品亚洲 | 久久99国产精品久久99果冻传媒 | 一区二区在线不卡 | 亚洲一区二区在线播放 | 欧美h版 |