91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python實現網絡通信數據傳輸的示例

發布時間:2021-02-19 11:16:49 來源:億速云 閱讀:371 作者:小新 欄目:編程語言

這篇文章給大家分享的是有關python實現網絡通信數據傳輸的示例的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

python實現網絡通信數據傳輸

  • 前言

  • 基礎知識學習


    • 1、流格式套接字SOCK_STREAM

    • 2、數據報格式套接字(SOCK_DGRAM)

    • 一、同步異步

    • 二、 什么是 socket

    • 三、socket套接字的分類


    • 四、IP地址、MAC地址、端口地址

  • 結束語

前言

我不是通信信息專業的,但是最近接觸了一些這方面的知識感覺挺有意思就學習了一下,并將學習結果記錄在這里,以便給更多人學習,要是能得到大佬的指點就美滋滋啦!!!

基礎知識學習

一、同步異步

  • 同步就是整個處理過程順序執行,當各個過程都執行完畢,并返回結果。是一種線性執行的方式,執行的流程不能跨越。一般用于流程性比較強的程序,比如用戶登錄,需要對用戶驗證完成后才能登錄系統。
    (發送方發一個,接收方接收一個,是同步的。)

  • 異步則是只是發送了調用的指令,調用者無需等待被調用的方法完全執行完畢;而是繼續執行下面的流程。是一種并行處理的方式,不必等待一個程序執行完,可以執行其它的任務,比如頁面數據加載過程,不需要等所有數據獲取后再顯示頁面。
    (發送方發送數據,接收方有一個緩存區,可以按照自己的規律去接受,當然發送方也可按照自己的規律去發送,兩者是異步的)

二、 什么是 socket

  • socket 的原意是“插座”,在計算機通信領域,socket 被翻譯為“套接字”,它是計算機之間進行通信的一種約定或一種方式。通過 socket 這種約定,計算機之間建立網絡連接。

  • 為了方便理解,我們可以類比插座,我們把插頭插到插座上就能從電網獲得電力供應,同樣,為了與遠程計算機進行數據傳輸,需要連接到因特網,而 socket 就是用來連接到因特網的工具。

  • 與 UNIX/Linux 不同的是,Windows 會區分 socket 和文件,Windows 就把 socket 當做一個網絡連接來對待,因此需要調用專門針對 socket 而設計的數據傳輸函數,針對普通文件的輸入輸出函數就無效了。

三、socket套接字的分類

主要常用兩種是流格式套接字(SOCK_STREAM)和數據報格式套接字(SOCK_DGRAM)。

1、流格式套接字SOCK_STREAM

  • 有以下幾個特征:
    數據在傳輸過程中不會消失;
    數據是按照順序傳輸的;
    數據的發送和接收是異步的。

  • 它使用了 TCP 協議(The Transmission Control Protocol,傳輸控制協議),TCP 協議會控制你的數據按照順序到達并且沒有錯誤。
    強調高質量。

2、數據報格式套接字(SOCK_DGRAM)

  • 計算機只管傳輸數據,不作數據校驗,如果數據在傳輸中損壞,或者沒有到達另一臺計算機,是沒有辦法補救的。也就是說,數據錯了就錯了,無法重傳。因為數據報套接字所做的校驗工作少,所以在傳輸效率方面比流格式套接字要高。

  • 它有以下特征:
    強調快速傳輸而非傳輸順序;
    傳輸的數據可能丟失也可能損毀;
    限制每次傳輸的數據大小;
    數據的發送和接收是同步的。
    數據報套接字也使用 IP 協議作路由,使用 UDP 協議(User Datagram Protocol,用戶數據報協議)。

  • 注意: SOCK_DGRAM 沒有想象中的糟糕,不會頻繁的丟失數據,數據錯誤只是小概率事件。

四、IP地址、MAC地址、端口地址

  • IP地址:是 Internet Protocol Address 的縮寫,譯為“網際協議地址”。目前大部分軟件使用 IPv4 地址,但 IPv6 也正在被人們接受,尤其是在教育網中,已經大量使用。
    對于IPV4,一個計算機一個IP地址是不現實的,所以一般是一個局域網一個IP地址。路由器會根據 IP 地址找到對方的地里位置,路由器有非常高效和智能的算法,很快就會找到目標局域網。

  • MAC地址:是物理地址,一個局域網地址有多個計算機的MAC地址,數據包中除了會附帶對方的 IP 地址,還會附帶對方的 MAC 地址,當數據包達到局域網以后,路由器/交換機會根據數據包中的 MAC 地址找到對應的計算機

  • 端口地址:一臺計算機可以同時提供多種網絡服務,例如 Web 服務(網站)、FTP 服務(文件傳輸服務)、SMTP 服務(郵箱服務)等,僅有 IP 地址和 MAC 地址,計算機雖然可以正確接收到數據包,但是卻不知道要將數據包交給哪個網絡程序來處理,所以通信失敗。
    為了區分不同的網絡程序,計算機會為每個網絡程序分配一個獨一無二的端口號(Port Number)。端口(Port)是一個虛擬的、邏輯上的概念。可以將端口理解為一道門,數據通過這道門流入流出,每道門有不同的編號,就是端口號。如下圖所示:
    python實現網絡通信數據傳輸的示例

  • 補充:今天剛剛看了下 串口和端口 的概念:
    串口是I/O通訊的接口,是硬件范疇,因為使用了串行的信號通訊而簡稱串口。
    端口(指一般的PC機操作系統中,單片機不算)只是一個16位的數字標識,用來在網絡通訊中標識不同的通訊進程,是操作系統定義的,就是說沒有操作系統的話也沒有端口的概念

感謝各位的閱讀!關于“python實現網絡通信數據傳輸的示例”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

北海市| 澄迈县| 原平市| 小金县| 巴马| 灵台县| 民丰县| 嘉荫县| 分宜县| 灵宝市| 牙克石市| 台南县| 黄冈市| 衢州市| 红河县| 青田县| 乐都县| 宁津县| 交口县| 桃江县| 吕梁市| 怀安县| 定远县| 化州市| 盐源县| 娄烦县| 峨山| 伊吾县| 专栏| 香格里拉县| 长乐市| 岚皋县| 井研县| 凌云县| 乐安县| 都昌县| 新昌县| 任丘市| 新津县| 松原市| 乐山市|