學習筆記:Python網絡編程初探之基本概念(一)

一、網絡目的

讓你設備上的數據和其他設備上進行共享,使用網絡能夠把多方鏈接在一起,然后可以進行數據傳遞。

網絡編程就是,讓在不同的電腦上的軟件能夠進行數據傳遞,即進程之間的通信。

二、IP地址的作用

用來標記唯一一臺電腦

1. Linux查看IP地址

輸入命令ifconfig

2. Window查看IP地址

快捷鍵win+R打開運行,輸入cmd,然后輸入命令ipconfig

3. Linux下關閉網卡

Ctrl+A:快速回到行首

Ctrl+E:快速回到行尾

(1)關閉網卡

(2)開啟網卡

三、IP地址分類

IPV4個數:256*256*256*256(瓜分完了,不夠用)

IPV6:

每一個IP地址包括兩部分:網絡地址和主機地址

1. A類IP地址

一個A類IP地址由1字節的網絡地址(網絡號)和3字節主機地址(主機號)組成,網絡地址的最高位必須是“0”。

  • 地址范圍:1.0.0.1 - 126.255.255.254
  • 二進制表示為:00000001 00000000 00000000 00000001 - 01111110 11111111 11111111 11111110
  • 可用的A類網絡有126個,每個網絡能容納16777214個主機。

2. B類IP地址

一個B類IP地址由2個字節的網絡地址(網絡號)和2個字節的主機地址(主機號)組成,網絡地址的最高位必須是“10”。

  • 地址范圍:128.1.0.1 - 191.255.255.254
  • 二進制表示為:10000000 00000001 00000000 00000001 - 10111111 11111111 11111111 11111110
  • 可用的B類網絡有16384個,每個網絡能容納65534個主機。

3. C類地址

一個C類IP地址由3個字節的網絡地址和1個字節的主機地址組成,網絡地址的最高位必須是“110”。

  • 范圍:192.0.1.1 - 223.255.255.254
  • 二進制表示為:11000000 00000000 00000001 00000001 - 11011111 11111111 11111110 11111110
  • C類網絡可達2097152個,每個網絡能容納254個主機。

4. D類地址用于多點廣播

D類IP地址第一個字節以“1110”開始,它是一個專門保留的地址。

它并不指向特定的網絡,目前這一類地址被用在多點廣播(Multicast)中。

多點廣播地址用來一次尋址一組計算機,地址范圍224.0.0.1 - 239.255.255.254。

?5. E類IP地址

以“1111”開始,為將來使用保留。E類地址保留,僅作實驗和開發用。

6. 私有ip

在這么多網絡IP中,國際規定有一部分IP地址是用于我們的局域網使用,也就是屬于私網IP,不在公網中使用的,它們的范圍是:

  • 10.0.0.0 ~ 10.255.255.255
  • 172.16.0.0 ~ 172.31.255.255
  • 192.168.0.0 ~ 192.168.255.255

四、端口

1. 什么是端口?

提出問題:當兩臺電腦上同時運行多個程序時,通過IP地址數據可以到達,但該給電腦中哪個程序呢?

計算機通過IP地址找到目標設備后,還需要用端口號區分設備上不同的軟件服務。例如:

  • 瀏覽網頁:默認用80端口(HTTP)或443端口(HTTPS)
  • 發郵件:用25端口(SMTP)
  • 下載文件:用21端口(FTP)

網絡端口的作用可以理解為計算機的“門牌號”。就像一棟大樓有很多房間(服務),每個房間有唯一的門牌號(端口號),方便快遞員(數據)準確找到對應的房間。

如果一個程序需要收發網絡數據,那么就需要有這樣的端口在Linux系統中,端口可以有65536(2的16次方)個之多!既然有這么多,操作系統為了統一管理,所以進行了編號,這就是端口號

2. 端口號

端口是通過端口號來標記的,端口號只有整數,范圍是從0到65535。

注意:端口號不一樣的*nix系統不一樣,還可以手動修改。

3. 端口是怎樣分配的

端口號不是隨意使用的,而是按照一定的規定進行分配

(1)知名端口(0-1023)

眾所周知的端口,范圍-到1023。由國際組織IANA統一管理,專門分配給最常用的網絡服務:

  • 80端口:網頁服務(HTTP)→ 相當于"官方網站入口"
  • 443端口:加密網頁(HTTPS)→ 類似"銀行VIP通道"
  • 22端口:安全遠程登錄(SSH)→ 類似"機房管理專用門"

(2)注冊端口(1024-49151)
企業可向IANA申請注冊專用端口,比如:

  • 3306端口:MySQL數據庫
  • 3389端口:Windows遠程桌面
  • 5432端口:PostgreSQL數據

?? (3) 動態端口

動態端口的范圍是從1024到65535

之所以稱為動態端口,是因為它一般不固定分配某種服務,而是動態分配。

動態分配是指當一個系統程序或應用程序程序需要網絡通信時,它向主機申請一個端口,主機從可用的端口號中分配一個供它使用。

當這個程序關閉時,同時也釋放了所占用的端口號。

(4)怎樣查看端口號

Linux 系統:

  • 使用netstat命令:如netstat -tulnp可以查看所有監聽中的 TCP 和 UDP 端口,并顯示對應的進程 ID 和程序名稱。若只想查看特定端口,如 22 端口的使用情況,可使用netstat -tnlp | grep ":22"4。
  • 使用ss命令ssnetstat的現代替代品,性能更優,常用ss -tuln查看端口,若查看特定端口,如查看端口號 22 的使用情況,可使用ss -tnlp | grep ":22"4。
  • 使用lsof命令lsof -i:<端口號>可以列出使用該端口的進程信息,如lsof -i:80可查看使用 80 端口的進程。

Windows 系統:

使用命令提示符(CMD)

  • netstat命令:打開命令提示符,輸入netstat -ano,可列出所有網絡連接和監聽端口,顯示本地地址、外部地址、狀態以及對應的進程 ID。若只想查看正在監聽的端口,可使用netstat -anl。要以數字格式顯示地址和端口信息,可使用netstat -n5。
  • tasklist命令配合netstat:先使用netstat -ano找到占用特定端口的進程 ID,再使用tasklist /fi "pid eq <進程ID>"查看對應的進程名稱和詳細信息。

使用任務管理器

  • 打開任務管理器,切換到 “性能” 選項卡,點擊 “資源監視器”,在 “網絡” 選項卡中可以查看正在使用的端口以及對應的進程。

五、Socket介紹

1. 不同電腦上的進程如何通信

首要解決的問題是如何唯一標識一個進程,否則通信無從談起!

在1臺電腦上可以通過進程號(PID)來唯一標識一個進程,但是在網絡中是行不通的。

起始TCP/IP協議協議族幫我們解決了這個問題,網絡層的IP地址可以唯一標識網絡中的主機,而傳輸層的“協議+端口”可以唯一標識主機中應用進程。

這樣利用ip地址 + 協議 + 端口就可以標識網絡的進程了,網絡中的進程通信就可以利用這個標志與其它進程進行交互。

2. 什么是Socket?

socket(簡稱套接字)是進程間通信的一種方式,其他進程間通信的~主要不同是:它能實現不同主機間的進程間通信,我們網絡上各種各樣的服務大多都是基于 Socket 來完成通信的例如我們每天瀏覽網頁、QQ 聊天、收發emai 等等。

3. 創建Socket

在python中,使用socket模塊的函數socket就可以完成:

import socket
socket.socket(AdressFamily,Type)

總結:所以說會了socket直白來講,你接下來編寫的程序,你就可以完成網絡功能

創建一個TCP Socket

import socket  # 導入 Python 內置的 socket 模塊,用于網絡編程  # 創建 TCP 套接字  
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  
# - socket.AF_INET:指定使用 IPv4 地址族(常見的網絡地址類型)。  
# - socket.SOCK_STREAM:指定使用 TCP 協議,特點是面向連接、可靠傳輸,數據無丟失、按序到達。  # ...這里是使用套接字的功能(省略)...  
# 實際使用中,會在此處添加綁定地址端口(bind)、監聽(listen)、接受連接(accept)、收發數據(send/recv)等邏輯。  

創建一個UDP Socket

import socket  # 導入 socket 模塊  # 創建 UDP 套接字  
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)  
# - socket.AF_INET:同樣指定 IPv4 地址族。  
# - socket.SOCK_DGRAM:指定使用 UDP 協議,特點是無連接、不可靠傳輸,適合對實時性要求高但允許少量丟包的場景(如視頻直播、游戲通信)。  # ...這里是使用套接字的功能(省略)...  
# 實際使用中,會在此處添加綁定地址端口(bind)、收發數據(sendto/recvfrom)等邏輯。  s.close()  # 關閉 UDP 套接字,釋放資源。 

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/71801.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/71801.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/71801.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

DeepSeek 醫療大模型微調實戰討論版(第一部分)

DeepSeek醫療大模型微調實戰指南第一部分 DeepSeek 作為一款具有獨特優勢的大模型,在醫療領域展現出了巨大的應用潛力。它采用了先進的混合專家架構(MoE),能夠根據輸入數據的特性選擇性激活部分專家,避免了不必要的計算,極大地提高了計算效率和模型精度 。這種架構使得 …

JetBrains學生申請

目錄 JetBrains學生免費授權申請 IDEA安裝與使用 第一個JAVA代碼 1.利用txt文件和cmd命令運行 2.使用IDEA新建項目 JetBrains學生免費授權申請 本教程采用學生校園郵箱申請&#xff0c;所以要先去自己的學校申請校園郵箱。 進入JetBrains官網 點擊立即申請&#xff0c;然…

LINUX網絡基礎 [五] - HTTP協議

目錄 HTTP協議 預備知識 認識 URL 認識 urlencode 和 urldecode HTTP協議格式 HTTP請求協議格式 HTTP響應協議格式 HTTP的方法 HTTP的狀態碼 ?編輯HTTP常見Header HTTP實現代碼 HttpServer.hpp HttpServer.cpp Socket.hpp log.hpp Makefile Web根目錄 H…

六十天前端強化訓練之第八天到第十四天——綜合案例:用戶管理系統

歡迎來到編程星辰海的博客講解 看完可以給一個免費的三連嗎&#xff0c;謝謝大佬&#xff01; 目錄 一、知識體系詳解 1. 變量與作用域 2. 箭頭函數特性 3. 數組高階函數 4. DOM操作原理 5. 事件傳播機制 6. 閉包核心原理 7. 原型繼承體系 8. Promise工作流程 二、綜…

技術周總結 03.03 - 03.09 周日(Java監控 SpringAI)

文章目錄 一、03.05 周三二、03.08 周六openAI 的Spring開發 一、03.05 周三 jvisualvm java自帶的監控和故障排除工具 命令行執行后&#xff0c;會出現 JConsole 二、03.08 周六 openAI 的Spring開發 引入 spring-ai-openai-spirng-boot-starter 依賴 Spring AI http…

DeepSeek:中國AGI破局者的技術革命與生態重構

在AI領域被"算力霸權"與"技術壟斷"籠罩的今天&#xff0c;一家來自杭州的初創公司正以顛覆性創新撕開行業鐵幕。DeepSeek&#xff08;深度求索&#xff09;不僅重新定義了AGI技術研發范式&#xff0c;更通過開源生態構建引發全球AI產業格局的深度重構。 一…

manus本地部署使用體驗

manus部署 https://github.com/mannaandpoem/OpenManus git clone https://github.com/mannaandpoem/OpenManus.git 或者手工下載zip包解壓&#xff0c;包很小&#xff0c;只有幾百K。 cd OpenManus-main #創建python環境&#xff0c;有python3的可以用python3 python -m ven…

【統計至簡】【入門測試1】給定數據矩陣X,如何求其質心、中心化數據、標準化數據、格拉姆矩陣、協方差矩陣、相關系數矩陣

給定數據矩陣X&#xff0c;如何求其質心、中心化數據、標準化數據、格拉姆矩陣、協方差矩陣、相關系數矩陣。 ??設數據矩陣 X X X是一個 n p n\times p np的矩陣&#xff0c;其中 n n n是樣本數量&#xff0c; p p p是變量數量&#xff0c; X ( x i j ) X (x_{ij}) X(xij?…

CI/CD—Jenkins、Maven安裝

Jenkins簡介 Jenkins 是一款廣泛使用的開源持續集成和持續交付&#xff08;CI/CD&#xff09;工具&#xff0c;以下是對它的詳細介紹&#xff1a; 基本信息 起源與發展&#xff1a;Jenkins 最早起源于 Hudson 項目&#xff0c;后來從 Hudson 項目中分離出來獨立發展。自 2011 …

抽獎系統測試報告

項目鏈接: 管理員登錄頁面 項目功能: 管理員登錄: 登錄方式分為兩種: 手機號密碼登錄: 正確輸入密碼和手機號登錄 短信驗證碼登錄: 輸入手機號,等待驗證碼,輸入驗證碼登錄 管理員注冊: 登錄頁面點擊注冊按鈕即可注冊管理員身份 人員管理模塊: 人員管理模塊分為注冊…

【高級篇】大疆Pocket 3加ENC編碼器實現無線RTMP轉HDMI進導播臺

【高級篇】大疆Pocket 3加ENC編碼器實現無線RTMP轉HDMI進導播臺 文章目錄 準備工作連接設備RTMP概念ENCSHV2推流地址設置大疆Pocket 3直播設置總結 老鐵們好&#xff01; 很久沒寫軟文了&#xff0c;今天給大家帶了一個干貨&#xff0c;如上圖&#xff0c;大疆Pocket 3加ENC編…

【 <一> 煉丹初探:JavaWeb 的起源與基礎】之 Servlet 與 JSP 的協作:MVC 模式的雛形

<前文回顧> 點擊此處查看 合集 https://blog.csdn.net/foyodesigner/category_12907601.html?fromshareblogcolumn&sharetypeblogcolumn&sharerId12907601&sharereferPC&sharesourceFoyoDesigner&sharefromfrom_link <今日更新> 一、Servl…

【不是廣告】華為昇騰的一小步,Pytorch的一大步

華為昇騰的一小步&#xff0c;Pytorch的一大步 關鍵詞 首個、中國首個、全球第十、最高級別&#xff01;看看這些字眼&#xff0c;就知道事情不簡單&#xff01; 書接上文《Pytorch的一小步&#xff0c;昇騰芯片的一大步》 在2023年10月4日PyTorch 2.1版本的發布博客上&…

python從入門到精通(二十六):python文件操作之Word全攻略(基于python-docx)

python文件操作之word技巧大全 word技巧基礎到高級操作大全A.準備工作1. 安裝python-docx庫2. 導入庫 B.基礎操作1. 創建Word文檔1.1 創建文檔對象1.2 添加word標題1.3 添加word段落1.4 設置段落樣式1.5 創建有序列表1.6 創建無序列表1.7添加word分頁1.8 添加word圖片1.9 添加w…

Debian二次開發一體化工作站:提升科研效率的智能工具

在科研領域&#xff0c;數據處理是實驗成功的關鍵環節之一。隨著實驗數據的復雜性和規模不斷增加&#xff0c;傳統的數據處理方法已經難以滿足科研人員的需求。這時&#xff0c;一體化工作站應運而生&#xff0c;成為科研實驗數據處理的 “智能大腦”。 一體化工作站&#xff…

linux學習(五)(服務器審查,正常運行時間負載,身份驗證日志,正在運行的服務,評估可用內存)

服務器審查 在 Linux 中審查服務器的過程包括評估服務器的性能、安全性和配置&#xff0c;以確定需要改進的領域或任何潛在問題。審查的范圍可以包括檢查安全增強功能、檢查日志文件、審查用戶帳戶、分析服務器的網絡配置以及檢查其軟件版本。 Linux 以其穩定性和安全性而聞名…

Redis- 大key

大key 什么是大key問題大key的危害大key的識別方法大key問題的解決方案數據結構優化與拆分壓縮與序列化優化預防與監控機制 什么是大key問題 大Key問題是指在Redis等內存數據庫中&#xff0c;某個Key對應的value數據結構過大&#xff0c;通常是指單個Key的大小超過10KB甚至達到…

C語言_數據結構總結6:鏈式棧

純c語言代碼&#xff0c;不涉及C 順序棧的實現&#xff0c;歡迎查看這篇文章&#xff1a;C語言_數據結構總結5&#xff1a;順序棧-CSDN博客 0. 結構單元 #include<stdio.h> #include<stdlib.h> typedef int ElemType; typedef struct Linknode { ElemType…

新品速遞 | 多通道可編程衰減器+矩陣系統,如何破解復雜通信測試難題?

在無線通信技術快速迭代的今天&#xff0c;多通道可編程數字射頻衰減器和衰減矩陣已成為測試領域不可或缺的核心工具。它們憑借高精度、靈活配置和強大的多通道協同能力&#xff0c;為5G、物聯網、衛星通信等前沿技術的研發與驗證提供了關鍵支持。從基站性能測試到終端設備校準…

AI自動化應用的影響

生產力的迭代也終將伴隨著一代人的落幕。 2025年是AI應用爆發的開局之年&#xff0c;預計3-5年現有生產關系將出現顛覆性改革。 AI自動化對經濟和就業的影響是一個復雜且多維的問題&#xff0c;其長期影響取決于技術進步、政策調控、社會適應能力等多重因素的綜合作用。以下從技…