1. 程式人生 > >Python基礎—16-網絡編程

Python基礎—16-網絡編程

val 網絡層 標識 http 數據報 傳輸控制協議 檢查 會話 占用

網絡編程

相關概念

  • OSI七層模型:開放系統互連參考模型。它從低到高分別是:物理層、數據鏈路層、網絡層、傳輸層、會話層、表示層和應用層。
  • TCP/IP:在OSI七層模型的基礎上簡化抽象出來的一套網絡協議簇,現在得到了廣泛使用。
  • TCP:傳輸控制協議
    • 有連接的,數據是安全有保障的
    • 傳輸的速度稍慢,三次握手、四次揮手、數據檢查
  • UDP:用戶數據報協議
    • 無連接的,數據是不可靠的
    • 傳輸的速度比較快
  • IP地址:唯一的一臺計算標識
    • 查看:ipconfig
  • ping:檢查網絡連通性
    • 使用:ping IP/域名
  • 端口號:每個應用可以擁有唯一的端口號
    • 範圍:0~65535
    • 系統:0~1024,常用的應用所占用
      • http:80
      • https:443
      • smtp:25
      • ftp:21
      • ssh:22
      • mysql:3306
      • redis:6379
    • 自己:大於1024
  • 網絡編程核心:
    • IP + 端口
    • 庫:socket

TCP協議

  • 說明:面向連接、數據可靠(校驗重發)、三次握手、四次揮手、傳輸速度較慢
  • 原理:見tcp.png
  • 示例:見01-tcp-http.py
  • TCP協議的服務器與客戶端:見02-tcp-server.py03-tcp-client.py

UDP協議

  • 說明:面向無連接的、數據不可靠、傳輸速度較快,適應於對數據要求不嚴格的情況
  • 原理:見udp.png
  • 示例:模擬飛秋發送數據,見04-udp-feiqiu.py
  • UDP協議的服務器與客戶端:見05-udp-server.y06-udp-client.py

StringIO與BytesIO

  • 說明:這些類型的對象可以與open返回的對象一樣操作,但是操作的內存中的數據
  • 方法:getvalue用於獲取所有數據

Python基礎—16-網絡編程