Python socket程式設計

鹹魚彬發表於2021-04-25

Python 提供了兩個基本的 socket 模組

  • Socket,它提供了標準的 BSD Sockets API。
  • SocketServer,它提供了伺服器中心類,可以簡化網路伺服器的開發。

Socket 型別

套接字格式:
socket(family,type[,protocal]) 使用給定的地址族、套接字型別、協議編號(預設為0)來建立套接字。
Python socket程式設計

Socket 函式

注意點:

  • TCP傳送資料時,已建立好TCP連線,所以不需要指定地址。UDP是面向無連線,每次傳送要指定是發給誰。
  • 服務端與客戶端不能直接傳送列表,元組,字典。需要字串化repr(data)。

Python socket程式設計

Python socket程式設計

Python socket程式設計

Socekt程式設計思路

TCP服務端:

  • 建立套接字,繫結套接字到本地IP與埠
    socket.socket(socket.AF_INET,socket.SOCK_STREAM),s.bind()
  • 開始監聽連線
    s.listen()
  • 進入迴圈,不斷接受客戶端的連線請求
    s.accept()
  • 然後接收傳來的資料,併傳送給對方資料
    s.recv() , s.sendall()
  • 傳輸完畢後,關閉套接字
    s.close()

TCP客戶端:

  • 建立套接字,連線遠端地址
    socket.socket(socket.AF_INET,socket.SOCK_STREAM),s.connect()
  • 連線後傳送資料和接收資料
    s.sendall(), s.recv()
  • 傳輸完畢後,關閉套接字
    s.close()

服務端例項程式碼

客戶端示例程式碼

相關文章