91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

Python通過socketserver處理多個鏈接

發布時間:2020-09-04 17:42:55 來源:腳本之家 閱讀:155 作者:flag_HW 欄目:開發技術

socket只能處理一個client連接,如果需要并發處理多個鏈接則需要使用socketserver,下面是代碼示例以及注釋

server端

import socketserver
#之前的socket只能同時處理一個客戶端,當需要并發處理client發送的信息是需要使用到socketserver,下面創建一個類,繼承socketserver其對應實例就有并發能力
class My_Tcp_Handler(socketserver.BaseRequestHandler):
  #下面的handler是自己定義的server與client交互的過程,所有交互過程都在此方法內部實現.方法名handle是固定的
  def handle(self):
    while True:
      try:
        #下面將收到的數據打印并且大寫后發回給客戶端
        self.data = self.request.recv(1024)
        print(self.data.decode(encoding="utf-8"))
        self.send_data = self.data.decode(encoding="utf-8").upper().encode(encoding="utf-8")
        self.request.sendall(self.send_data)
      except ConnectionResetError as e:
        print("一個客戶端關閉了連接")
        break

#實例化socketserver
My_server = socketserver.ThreadingTCPServer(("0.0.0.0", 8888), My_Tcp_Handler) #ThreadingTCPServer是使用多線程,ForkingTCPServer是使用多進程處理并發
#啟動實例
My_server.serve_forever()

下面是client端

import socket
client = socket.socket()
client.connect(("127.0.0.1", 8888))
while True:
  msg = input()
  if len(msg) == 0:
    continue
  client.send(msg.encode(encoding="utf-8")) #如果發送中文需要對其進行encode,接收也需要decode;英文前面直接加b指定類型
  client_rec = client.recv(1024).decode(encoding="utf-8")
  print("client_rec:", client_rec)
client.close()

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

向AI問一下細節

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

AI

新宁县| 沙洋县| 确山县| 大化| 锡林浩特市| 章丘市| 池州市| 盘山县| 康保县| 达州市| 寻乌县| 民丰县| 登封市| 德江县| 怀仁县| 大石桥市| 南华县| 莫力| 唐海县| 宝应县| 淮滨县| 吉隆县| 南部县| 黎平县| 麻城市| 章丘市| 柳河县| 略阳县| 都江堰市| 衡阳市| 福建省| 凌源市| 玛曲县| 巫山县| 来安县| 彰武县| 嘉禾县| 扶余县| 乌拉特前旗| 噶尔县| 额尔古纳市|