server.py 수입 socketserver의 클래스 MyServer를 (socketserver.BaseRequestHandler) : 데프 핸들 (자기) 동안 진정한 : CONN = self.request 동안 참 : 데이터 = conn.recv (1024 ) 의 경우 STR (데이터, ' UTF-8 ' ) == ' Q ' : 브레이크 인쇄 (STR (데이터 ' UTF8 ' )) INP = 입력 ( ' >>> ') conn.send (바이트 (INP, ' UTF8 ' )) conn.close () 경우 __name__ == ' __main__ ' : 서버 = socketserver.ThreadingTCPServer (( ' 127.0.0.1 ' , 8000 ) MyServer의) server.serve_forever ()
client.py 오기 소켓 SK = socket.socket () 어드레스 = ( ' 127.0.0.1 ' , 8000 ) sk.connect (어드레스) 동안 참 : INP = 입력 ( ' >>> ' ) 의 경우 INP == ' Q ' : 인쇄 ( ' 안녕 ' ) 브레이크 sk.send (바이트 (INP, ' UTF8 ' )) 데이터 = sk.recv (1024 ) 인쇄 (STR (데이터 "UTF8 ' ))
구문 분석 : server.py 첫 번째 통화의 socketserver 모듈하기는 자체의 설립과 클래스 MyServer를 상속 SocketServer.BaseRequestHandler의를 , 클래스의 재 작성 투수 방법, 서버 = socketserver.ThreadingTCPServer (( ' 127.0.0.1 ', 8000 ), MyServer를) IP 주소, 포트 및 프로토콜의 캡슐화를 달성하기 위하여는, 사용자 자신의 채팅 코드가 동시에 방법을 달성하기 위해 핸들에 기록, 프로그램 실행 프로세스의 코드 실행을 처리하기 위해 이동하는 것입니다. 동시 가능 채팅.