国产日韩欧美一区二区三区综合,日本黄色免费在线,国产精品麻豆欧美日韩ww,色综合狠狠操

極客小將

您現在的位置是:首頁 » python編程資訊

資訊內容

python基礎知識之二:網絡通信數據傳輸

極客小將2021-02-27-
簡介python實現網絡通信數據傳輸(基礎知識(二))免費學習推薦:python視頻教程前言基礎知識學習一、OSI模型二、TCP、IP協議族:三、python中字符串的編碼方式結束語前言第二彈來了!今天還是上些基礎知識吧,扎實的基礎才是深入學習的不二法門!!!基礎知識學習一、OSI模型OSI模型把網絡通
版權所有:https://wWw.pxcodeS.com

python實現網絡通信數據傳輸(基礎知識(二))26L少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

免費學習推薦:python視頻教程26L少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

前言 基礎知識學習 一、OSI 模型二、TCP、IP協議族:三、python中字符串的編碼方式結束語

前言26L少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

第二彈來了!今天還是上些基礎知識吧,扎實的基礎才是深入學習的不二法門!!!26L少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

基礎知識學習26L少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

一、OSI 模型26L少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

OSI 模型把網絡通信的工作分為 7 層,從下到上分別是物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層和應用層。
OSI 只是存在于概念和理論上的一種模型,它的缺點是分層太多,增加了網絡工作的復雜性,所以沒有大規模應用。后來人們對 OSI 進行了簡化,合并了一些層,**終只保留了 4 層,從下到上分別是接口層、網絡層、傳輸層和應用層,這就是大名鼎鼎的 TCP/IP 模型。 這個網絡模型究竟是干什么呢?簡而言之就是進行數據封裝的。數據封裝原理: 我們平常使用的程序(軟件)一般都是通過應用層來訪問網絡的,程序產生的數據會一層一層地往下傳輸,直到**后的網絡接口層,就通過網線發送到互聯網上去了。數據每往下走一層,就會被這一層的協議增加一層包裝,等到發送到互聯網上時,已經比原始數據多了四層包裝。整個數據封裝的過程就像俄羅斯套娃。當另一臺計算機接收到數據包時,會從網絡接口層再一層一層往上傳輸,每傳輸一層就拆開一層包裝,直到**后的應用層,就得到了**原始的數據,這才是程序要使用的數據。給數據加包裝的過程,實際上就是在數據的頭部增加一個標志(一個數據塊),表示數據經過了這一層,我已經處理過了。給數據拆包裝的過程正好相反,就是去掉數據頭部的標志,讓它逐漸現出原形。

(OSI 七層網絡模型和 TCP/IP 四層網絡模型的對比)兩臺計算機進行通信時,必須遵守以下原則:
(1) 必須是同一層次進行通信,比如,A 計算機的應用層和 B 計算機的傳輸層就不能通信,因為它們不在一個層次,數據的拆包會遇到問題。
(2) 每一層的功能都必須相同,也就是擁有完全相同的網絡模型。如果網絡模型都不同,那不就亂套了,誰都不認識誰。
數據只能逐層傳輸,不能躍層。
(3) 每一層可以使用下層提供的服務,并向上層提供服務。

二、TCP、IP協議族:26L少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

常用到的 socket 編程是基于 TCP 和 UDP 協議的,它們的層級關系如下圖所示:
26L少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

三、python中字符串的編碼方式26L少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

python中要把字符串的編碼方式轉換為utf-8的形式!26L少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

同樣一個數,你可以選不同的方式來表示它,選用什么方案,就是對 Unicode 的一種編碼方法(utf-8是Unicode編碼方式的一種具體實現)。Python 內部使用 Unicode 來表示字符串,所以想要print什么漢字(英文字母和數字的Unicode和utf-8的編碼是一樣的)的就要保證是Unicode的編碼方式,如果是“utf-8”的編碼方式(輸出就是一堆二進制代碼,一個漢字的utf-8編碼為三個字節,也就是三段二進制表示,如下圖),可以用.decode(“utf-8”)來解碼。而在保存到硬盤或者發送到網上(用到socket等和通信有關的),需要轉成 UTF-8。

(utf-8編碼在python里的輸出結果)為什么在內部不繼續使用 UTF-8,那樣不就不用轉換了嗎?這個就涉及到 UTF-8 的一個缺點:計算字符串長度和查找子字符串非常沒效率。在使用 UCS2 的時候,要想知道這個字符串有多長,只要看一下它占了幾個字節,然后除個 2 就可以了,而 UTF-8 的話,就需要一個字符一個字符的數出來。在做子字符串搜索的時候,因為不知道下一個字符占幾個字節,所以那些高效的搜索算法也都不靈了。

結束語26L少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

下次我會拿出一些簡單的例子,以幫助大家理解和實際操作。**后希望大家看完,順手點一個小小的贊,給點鼓勵吧,一篇寫出來兩個多小時過去了,沒有任何利益的行為,只是為了知識共享,共同學習,一起成長!!!(偷偷說,我看完別人的文章也不點贊,這不是好習慣,我馬上改的,嗚嗚嗚)26L少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

相關免費學習推薦:python教程(視頻)26L少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

以上就是python基礎知識之二:網絡通信數據傳輸的詳細內容,更多請關注少兒編程網其它相關文章!26L少兒編程網-Scratch_Python_教程_免費兒童編程學習平臺

預約試聽課

已有385人預約都是免費的,你也試試吧...

主站蜘蛛池模板: 康平县| 永州市| 讷河市| 察隅县| 绥滨县| 英超| 湘乡市| 丹东市| 铅山县| 龙岩市| 伊川县| 新平| 铜鼓县| 鄂托克前旗| 苍山县| 东山县| 临泽县| 微山县| 轮台县| 汉寿县| 绍兴市| 佛山市| 玉树县| 定远县| 得荣县| 阜平县| 高碑店市| 巴里| 柯坪县| 左权县| 育儿| 花莲市| 肥乡县| 淳化县| 临颍县| 塔城市| 舟山市| 宜都市| 新巴尔虎左旗| 镇坪县| 山阴县|