1. 程式人生 > >Python基礎—16-網路程式設計

Python基礎—16-網路程式設計

網路程式設計

相關概念

  • 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用於獲取所有資料