python socket多線程和多進程

來源:互聯網
上載者:User

標籤:socket多線程   socket多進程   並發socket   

在socket中,如果直接建立的話,是只能接受一個使用者的請求
需要實現socketserver中的handle方法,可以實現多進程並發訪問

SocketServer內部使用 IO多工 以及 “多線程” 和 “多進程” ,從而實現並發處理多個用戶端請求的Socket服務端。即:每個用戶端請求串連到伺服器時,Socket服務端都會在伺服器是建立一個“線程”或者“進 程” 專門負責處理當前用戶端的所有請求。

1、建立一個繼承自 socketserver.BaseRequestHandler 的類,類中必須定義一個名稱為 handle 的方法
2、啟動ThreadingTCPServer

import socketserverclass MyServer(socketserver.BaseRequestHandler):    def handle(self):        conn = self.request        conn.sendall("我是一個多線程".encode())        Flag = True        while Flag:            data = conn.recv(1024)            if data.decode() == "exit":                Flag = False            conn.sendall(data)if __name__ == "__main__":    server = socketserver.ThreadingTCPServer((‘127.0.0.1‘,8009),MyServer)    server.serve_forever()
用戶端直接使用原來的用戶端代碼即可。

ThreadingTCPServer
ThreadingTCPServer實現的Soket伺服器內部會為每個client建立一個 “線程”,該線程用來和用戶端進行互動。

python socket多線程和多進程

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.