Python - socketserver와 threading을 이용한 채팅서버 구축
import socketserver, threading, socket class ThreadedTCPRequestHandler(socketserver.BaseRequestHandler): def handle(self): data = self.request.recv(1024).decode() cur_thread = threading.current_thread() response = "{}: {}".format(cur_thread.name, data) self.request.sendall(response.encode('utf-8')) # handle함수는 클라이언트로부터 request가 왔을 때 동작하는 함수입니다. # socketserver.BaseRequestHandler 클래스를 상속했다면 반드시 사용자가 override를 하여 실행할 동작을 정의해 주어야합니다. # data는 클라이언트가 보낸 데이터(버퍼사이즈1024)를 보유하고 있습니다. # 현재 쓰레드를 호출하고 이를 cur_thread라는 변수에 대입합니다. # cur_thread.name으로 현재 쓰레드의 이름 (쓰레드 생성시 이름을 지정할 수 있으며 지정하지 않을경우 기본적으로 'Thread-정수(1부터시작)'이 기본값이 됩니다. # 따라서 response는 현재 쓰레드 이름과 클라이언트가 수신한 데이터를 문자열로 보관하는 변수이고 # 이를 인코딩 하여 sendall메소드를 통해 접속한 모든 클라이언트에게 보내주게 됩니다. class ThreadedTCPServer(socketserver.ThreadingMixIn, socketserver.TCPServer): pass # socket서버의 ThreadingMixIn클...