免費學習推薦: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)是一個虛擬的、邏輯上的概念。可以將連接埠理解為一扇門,資料通過這道門流入流出,每道門有不同的編號,就是連接埠號碼。如下圖所示: -
補充:今天剛剛看了下 字串埠和連接埠 的概念:
串列埠是I/O通訊的接口,是硬體範疇,因為使用了串列的訊號通訊而簡稱串口。
連接埠(指一般的PC機作業系統中,單晶片不算)只是一個16位元的數字標識,用來在網路通訊中標識不同的通訊進程,是作業系統定義的,就是說沒有作業系統的話也沒有連接埠的概念
結束語
最近學習了挺多有關通訊的東西,希望拿出來跟大家分享一下,本文只是接下來幾篇中的開頭,做些基礎準備,接下來還準備發些相關知識最後會準備幾個例子供大家參考! ! !
欲知後事如何,請聽下回分解!
免費學習推薦:python影片教學
以上是python基礎一:網路通訊資料傳輸的詳細內容。更多資訊請關注PHP中文網其他相關文章!

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

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

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

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

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

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

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


熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

記事本++7.3.1
好用且免費的程式碼編輯器

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

WebStorm Mac版
好用的JavaScript開發工具

SublimeText3 Linux新版
SublimeText3 Linux最新版