搜尋
首頁後端開發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中文網其他相關文章!

陳述
本文轉載於:CSDN。如有侵權,請聯絡admin@php.cn刪除
學習Python:2小時的每日學習是否足夠?學習Python:2小時的每日學習是否足夠?Apr 18, 2025 am 12:22 AM

每天學習Python兩個小時是否足夠?這取決於你的目標和學習方法。 1)制定清晰的學習計劃,2)選擇合適的學習資源和方法,3)動手實踐和復習鞏固,可以在這段時間內逐步掌握Python的基本知識和高級功能。

Web開發的Python:關鍵應用程序Web開發的Python:關鍵應用程序Apr 18, 2025 am 12:20 AM

Python在Web開發中的關鍵應用包括使用Django和Flask框架、API開發、數據分析與可視化、機器學習與AI、以及性能優化。 1.Django和Flask框架:Django適合快速開發複雜應用,Flask適用於小型或高度自定義項目。 2.API開發:使用Flask或DjangoRESTFramework構建RESTfulAPI。 3.數據分析與可視化:利用Python處理數據並通過Web界面展示。 4.機器學習與AI:Python用於構建智能Web應用。 5.性能優化:通過異步編程、緩存和代碼優

Python vs.C:探索性能和效率Python vs.C:探索性能和效率Apr 18, 2025 am 12:20 AM

Python在開發效率上優於C ,但C 在執行性能上更高。 1.Python的簡潔語法和豐富庫提高開發效率。 2.C 的編譯型特性和硬件控制提升執行性能。選擇時需根據項目需求權衡開發速度與執行效率。

python在行動中:現實世界中的例子python在行動中:現實世界中的例子Apr 18, 2025 am 12:18 AM

Python在現實世界中的應用包括數據分析、Web開發、人工智能和自動化。 1)在數據分析中,Python使用Pandas和Matplotlib處理和可視化數據。 2)Web開發中,Django和Flask框架簡化了Web應用的創建。 3)人工智能領域,TensorFlow和PyTorch用於構建和訓練模型。 4)自動化方面,Python腳本可用於復製文件等任務。

Python的主要用途:綜合概述Python的主要用途:綜合概述Apr 18, 2025 am 12:18 AM

Python在數據科學、Web開發和自動化腳本領域廣泛應用。 1)在數據科學中,Python通過NumPy、Pandas等庫簡化數據處理和分析。 2)在Web開發中,Django和Flask框架使開發者能快速構建應用。 3)在自動化腳本中,Python的簡潔性和標準庫使其成為理想選擇。

Python的主要目的:靈活性和易用性Python的主要目的:靈活性和易用性Apr 17, 2025 am 12:14 AM

Python的靈活性體現在多範式支持和動態類型系統,易用性則源於語法簡潔和豐富的標準庫。 1.靈活性:支持面向對象、函數式和過程式編程,動態類型系統提高開發效率。 2.易用性:語法接近自然語言,標準庫涵蓋廣泛功能,簡化開發過程。

Python:多功能編程的力量Python:多功能編程的力量Apr 17, 2025 am 12:09 AM

Python因其簡潔與強大而備受青睞,適用於從初學者到高級開發者的各種需求。其多功能性體現在:1)易學易用,語法簡單;2)豐富的庫和框架,如NumPy、Pandas等;3)跨平台支持,可在多種操作系統上運行;4)適合腳本和自動化任務,提升工作效率。

每天2小時學習Python:實用指南每天2小時學習Python:實用指南Apr 17, 2025 am 12:05 AM

可以,在每天花費兩個小時的時間內學會Python。 1.制定合理的學習計劃,2.選擇合適的學習資源,3.通過實踐鞏固所學知識,這些步驟能幫助你在短時間內掌握Python。

See all articles

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

AI Hentai Generator

AI Hentai Generator

免費產生 AI 無盡。

熱門文章

R.E.P.O.能量晶體解釋及其做什麼(黃色晶體)
1 個月前By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳圖形設置
1 個月前By尊渡假赌尊渡假赌尊渡假赌
威爾R.E.P.O.有交叉遊戲嗎?
1 個月前By尊渡假赌尊渡假赌尊渡假赌

熱工具

VSCode Windows 64位元 下載

VSCode Windows 64位元 下載

微軟推出的免費、功能強大的一款IDE編輯器

記事本++7.3.1

記事本++7.3.1

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

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

WebStorm Mac版

WebStorm Mac版

好用的JavaScript開發工具

SublimeText3 Linux新版

SublimeText3 Linux新版

SublimeText3 Linux最新版