亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

python多線程實現TCP服務端

發布時間:2020-10-10 16:15:36 來源:腳本之家 閱讀:141 作者:HMMHMH 欄目:開發技術

本文實例為大家分享了python多線程實現TCP服務端的具體代碼,供大家參考,具體內容如下

需求

1.創建一個TCP服務器接收服務端發送的信息并給予答復
2.以多線程方式實現接收客戶端信息
3.間客戶端發送的信息解碼輸出

思路分析

1.創建一個TCP客戶端套接字
2.寫一個接收消息的方法,可以接收客戶端消息并解碼輸出
3.客戶端被動監聽,每有一個客戶端連接就創建一個子線程執行接收消息方法

代碼實現

# 導入模塊
import socket
import threading


# 接收消息
def recv(client_socket, ip_port):
  while True:
    client_text = client_socket.recv(1024)
    # 如果接收的消息長度不為0,則將其解碼輸出
    if client_text:
      print("[客戶端消息]", ip_port, ":", client_text.decode("gbk"))
      # 給客戶端響應
      client_socket.send("收到\n".encode())
    # 當客戶端斷開連接時,會一直發送''空字符串,所以長度為0已下線
    else:
      print("客戶端", ip_port, "已下線")
      client_socket.close()
      break


# 程序主入口
def main():
  # 創建TCP套接字
  tcp_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  # 設置端口復用
  tcp_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, True)
  # 綁定端口
  tcp_socket.bind(("", 8080))
  # 設置為被動監聽狀態,128表示最大連接數
  tcp_socket.listen(128)
  while True:
    # 等待客戶端連接
    client_socket, ip_port = tcp_socket.accept()
    print("[新客戶端]:", ip_port, "已連接")
    # 有客戶端連接后,創建一個線程將客戶端套接字,IP端口傳入recv函數,
    t1 = threading.Thread(target=recv, args=(client_socket, ip_port))
    # 設置線程守護
    t1.setDaemon(True)
    # 啟動線程
    t1.start()


if __name__ == '__main__':
  main()

執行結果

接收客戶端消息

python多線程實現TCP服務端 

響應客戶端消息

python多線程實現TCP服務端 

客戶端下線后識別

python多線程實現TCP服務端

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

北票市| 江口县| 大竹县| 浦北县| 吴旗县| 扎鲁特旗| 三亚市| 扬州市| 桃源县| 河池市| 南澳县| 宁晋县| 临泽县| 克拉玛依市| 吐鲁番市| 新竹县| 铜川市| 昌宁县| 驻马店市| 涿鹿县| 怀集县| 天峻县| 崇义县| 广元市| 石林| 台中市| 开原市| 陆川县| 瓮安县| 潼关县| 岑巩县| 炎陵县| 荥阳市| 龙海市| 上高县| 宜丰县| 汝阳县| 安新县| 志丹县| 上杭县| 大厂|