Python 之socketserver模塊實現多線程


一、服務端

import socketserver
import time

conn_poll = []

class MyServer(socketserver.BaseRequestHandler):
    
    def handle(self):
        print('... connected from {}'.format(self.client_address))
        conn_poll.append(self.client_address)
        while True:
            # request.recv 方法接收客戶端發來的消息
            data = self.request.recv(1024)
            
            if data == 'exit':
                conn_poll.remove(self.client_address)
                # 發送exit給客戶端斷開連接
                self.request.sendall(data.encode('utf-8'))
                break
            # request.sendall 方法發送消息給客戶端
            self.request.sendall('[{}] {}'.format(time.ctime(), data.decode('utf-8')).encode('utf-8'))
        
    def finish(self):
        print('finish')
        
    
if __name__ == '__main__':
    s = socketserver.ThreadingTCPServer(('', 12306), MyServer)
    s.serve_forever()

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM