python 實現 TCP 伺服器最簡流程

Galois發表於2020-07-18

流程思路

  1. 確定伺服器需要監聽的 IP 地址和埠
  2. 啟動監聽並設定最大連線數
  3. 讓伺服器進入主迴圈中,並等待被連線
  4. 當一個客戶端成功連線的時候
    • 將接收到的客戶端套接字物件儲存到 client 變數中
    • 將遠端連線的細節儲存到 addr 變數中
  5. handle_client 為回撥函式建立一個新的執行緒物件,將客戶端套接字物件作為一個控制程式碼傳遞給它
  6. 啟動執行緒開始處理客戶端連線
import socket
import threading

bind ip = "0.0.0.0"
bind port = 9999

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(bind_ip, bind_port)
server.listen(5)

print("[*] Listening on %s:%d" % (bind_ip, bind_port))

def handle_client(client_cocket):
    request = client socket.recv(1024)

    print("[*] Received: %s" % request)

    client_socket.send("ACK!")
    client_socket.close()

while True:
    client, addr = server.accept()

    print("[*] Accept connection from: %s:%d" % (addr[O], addr[1]))

    client_handler = threading.Thread(target=handle_client, args=(client,))
    client_handler.start()
本作品採用《CC 協議》,轉載必須註明作者和本文連結
不要試圖用百米衝刺的方法完成馬拉松比賽。

相關文章