目錄
python實作網路通訊資料傳輸(基礎知識(一))
前言" > 前言
基礎知識學習" > 基礎知識學習
一、同步非同步" > 一、同步非同步
二、 什麼是socket" > 二、 什麼是socket
三、socket套接字的分類" >三、socket套接字的分類
1、流格式套接字SOCK_STREAM" >1、流格式套接字SOCK_STREAM
2、資料報格式套接字(SOCK_DGRAM)" >2、資料報格式套接字(SOCK_DGRAM)
四、IP位址、MAC位址、連接埠位址" >四、IP位址、MAC位址、連接埠位址
結束語" >結束語
首頁 後端開發 Python教學 python基礎一:網路通訊資料傳輸

python基礎一:網路通訊資料傳輸

Feb 19, 2021 am 10:03 AM
python 網路通訊

python基礎一:網路通訊資料傳輸

免費學習推薦:python教學(影片)

python實作網路通訊資料傳輸(基礎知識(一))

  • # 前言
  • 基礎知識學習
    • 一、同步非同步
    • # 二、 什麼是socket
    • 三、socket套接字的分類
      • 1、串流格式套接字SOCK_STREAM
      • 2、資料封包格式套接字(SOCK_DGRAM)
    • 四、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影片教學

以上是python基礎一:網路通訊資料傳輸的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

PHP和Python:解釋了不同的範例 PHP和Python:解釋了不同的範例 Apr 18, 2025 am 12:26 AM

PHP主要是過程式編程,但也支持面向對象編程(OOP);Python支持多種範式,包括OOP、函數式和過程式編程。 PHP適合web開發,Python適用於多種應用,如數據分析和機器學習。

在PHP和Python之間進行選擇:指南 在PHP和Python之間進行選擇:指南 Apr 18, 2025 am 12:24 AM

PHP適合網頁開發和快速原型開發,Python適用於數據科學和機器學習。 1.PHP用於動態網頁開發,語法簡單,適合快速開發。 2.Python語法簡潔,適用於多領域,庫生態系統強大。

Python vs. JavaScript:學習曲線和易用性 Python vs. JavaScript:學習曲線和易用性 Apr 16, 2025 am 12:12 AM

Python更適合初學者,學習曲線平緩,語法簡潔;JavaScript適合前端開發,學習曲線較陡,語法靈活。 1.Python語法直觀,適用於數據科學和後端開發。 2.JavaScript靈活,廣泛用於前端和服務器端編程。

PHP和Python:深入了解他們的歷史 PHP和Python:深入了解他們的歷史 Apr 18, 2025 am 12:25 AM

PHP起源於1994年,由RasmusLerdorf開發,最初用於跟踪網站訪問者,逐漸演變為服務器端腳本語言,廣泛應用於網頁開發。 Python由GuidovanRossum於1980年代末開發,1991年首次發布,強調代碼可讀性和簡潔性,適用於科學計算、數據分析等領域。

vs code 可以在 Windows 8 中運行嗎 vs code 可以在 Windows 8 中運行嗎 Apr 15, 2025 pm 07:24 PM

VS Code可以在Windows 8上運行,但體驗可能不佳。首先確保系統已更新到最新補丁,然後下載與系統架構匹配的VS Code安裝包,按照提示安裝。安裝後,注意某些擴展程序可能與Windows 8不兼容,需要尋找替代擴展或在虛擬機中使用更新的Windows系統。安裝必要的擴展,檢查是否正常工作。儘管VS Code在Windows 8上可行,但建議升級到更新的Windows系統以獲得更好的開發體驗和安全保障。

visual studio code 可以用於 python 嗎 visual studio code 可以用於 python 嗎 Apr 15, 2025 pm 08:18 PM

VS Code 可用於編寫 Python,並提供許多功能,使其成為開發 Python 應用程序的理想工具。它允許用戶:安裝 Python 擴展,以獲得代碼補全、語法高亮和調試等功能。使用調試器逐步跟踪代碼,查找和修復錯誤。集成 Git,進行版本控制。使用代碼格式化工具,保持代碼一致性。使用 Linting 工具,提前發現潛在問題。

notepad 怎麼運行python notepad 怎麼運行python Apr 16, 2025 pm 07:33 PM

在 Notepad 中運行 Python 代碼需要安裝 Python 可執行文件和 NppExec 插件。安裝 Python 並為其添加 PATH 後,在 NppExec 插件中配置命令為“python”、參數為“{CURRENT_DIRECTORY}{FILE_NAME}”,即可在 Notepad 中通過快捷鍵“F6”運行 Python 代碼。

vscode 擴展是否是惡意的 vscode 擴展是否是惡意的 Apr 15, 2025 pm 07:57 PM

VS Code 擴展存在惡意風險,例如隱藏惡意代碼、利用漏洞、偽裝成合法擴展。識別惡意擴展的方法包括:檢查發布者、閱讀評論、檢查代碼、謹慎安裝。安全措施還包括:安全意識、良好習慣、定期更新和殺毒軟件。

See all articles