欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python多線程實現(xiàn)TCP服務(wù)端

 更新時間:2019年09月03日 11:25:39   作者:HMMHMH  
這篇文章主要為大家詳細(xì)介紹了python多線程實現(xiàn)TCP服務(wù)端,具有一定的參考價值,感興趣的小伙伴們可以參考一下

本文實例為大家分享了python多線程實現(xiàn)TCP服務(wù)端的具體代碼,供大家參考,具體內(nèi)容如下

需求

1.創(chuàng)建一個TCP服務(wù)器接收服務(wù)端發(fā)送的信息并給予答復(fù)
2.以多線程方式實現(xiàn)接收客戶端信息
3.間客戶端發(fā)送的信息解碼輸出

思路分析

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

代碼實現(xiàn)

# 導(dǎo)入模塊
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"))
      # 給客戶端響應(yīng)
      client_socket.send("收到\n".encode())
    # 當(dāng)客戶端斷開連接時,會一直發(fā)送''空字符串,所以長度為0已下線
    else:
      print("客戶端", ip_port, "已下線")
      client_socket.close()
      break


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


if __name__ == '__main__':
  main()

執(zhí)行結(jié)果

接收客戶端消息

這里寫圖片描述 

響應(yīng)客戶端消息

這里寫圖片描述 

客戶端下線后識別

這里寫圖片描述

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python 含參構(gòu)造函數(shù)實例詳解

    Python 含參構(gòu)造函數(shù)實例詳解

    這篇文章主要介紹了Python 含參構(gòu)造函數(shù)實例詳解的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • Python實現(xiàn)有趣的親戚關(guān)系計算器

    Python實現(xiàn)有趣的親戚關(guān)系計算器

    每年的春節(jié),都會有一些自己幾乎沒印象但父母就是很熟的親戚,關(guān)系凌亂到你自己都說不清。本文就來用Python制作一個有趣的親戚關(guān)系計算器,感興趣的可以了解一下
    2023-01-01
  • python 通過類中一個方法獲取另一個方法變量的實例

    python 通過類中一個方法獲取另一個方法變量的實例

    今天小編就為大家分享一篇python 通過類中一個方法獲取另一個方法變量的實例,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-01-01
  • 詳解Python 調(diào)用C# dll庫最簡方法

    詳解Python 調(diào)用C# dll庫最簡方法

    這篇文章主要介紹了詳解Python 調(diào)用C# dll庫最簡方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-06-06
  • Python格式化字符串f-string簡介

    Python格式化字符串f-string簡介

    f-string,亦稱為格式化字符串常量(formatted?string?literals),是Python3.6新引入的一種字符串格式化方法,這篇文章主要介紹了Python格式化字符串f-string概覽,需要的朋友可以參考下
    2022-12-12
  • python求最大連續(xù)子數(shù)組的和

    python求最大連續(xù)子數(shù)組的和

    這篇文章主要介紹了python求最大連續(xù)子數(shù)組的和,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-07-07
  • Python內(nèi)建類型bytes深入理解

    Python內(nèi)建類型bytes深入理解

    這篇文章主要為大家介紹了Python內(nèi)建類型bytes的深入理解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-05-05
  • Python實現(xiàn)格式化輸出的實例詳解

    Python實現(xiàn)格式化輸出的實例詳解

    這篇文章主要為大家介紹了Python語法中實現(xiàn)格式化輸出的方法,本文通過幾個實例為大家進行了詳細(xì)的講解,感興趣的小伙伴可以了解一下
    2022-08-08
  • 使用Pycharm+PyQt5彈出子窗口的程序代碼

    使用Pycharm+PyQt5彈出子窗口的程序代碼

    這篇文章主要介紹了使用Pycharm+PyQt5彈出子窗口的解決方法,本文通過示例代碼給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-10-10
  • 基于tensorflow __init__、build 和call的使用小結(jié)

    基于tensorflow __init__、build 和call的使用小結(jié)

    這篇文章主要介紹了基于tensorflow __init__、build 和call的使用小結(jié),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02

最新評論