멀티 스레드 소켓 서버 기반 지원 동시

프로세스 풀 | 스레드 풀 (동기, 비동기 차단, 비 차단) 
멀티 스레딩 : IO 집약적 인
멀티 프로세스 : 계산 집약적 인
스레드가 장치를 실행하는 CPU이다, 프로세스가 자원 단위
에서 소켓 수입 *
 에서 스레딩 수입 스레드 

데프 comunicat (CONN를)
     동안 트루   #이 通信循环
        시도 : 
            데이터 = conn.recv (1024 )
             경우 렌 (데이터) == 0 : 브레이크 
            conn.send (data.upper ()) 
        제외 ConnectionResetError :
             브레이크 
    conn.close () 

데프 서버 (IP, 포트, 백 로그 = 5 ) : 
    서버 = 소켓 (AF_INET, SOCK_STREAM) 
    server.bind ((IP, 포트)) 
    server.listen (백 로그)

    동안 참 :   # 链接循环 
        CONN, client_addr = server.accept ()
         인쇄 (client_addr) 

        # 通信 
        t = 스레드 (목표 = comunicat, 인수의 = (CONN)) 
        t.start () 

경우  __name__ == ' __main__ ' : 
    S 나사산 (= 대상 서버의 인수 = ( ' 127.0.0.1 ' , 8081 )) 
    s.start ()
서버
 소켓 수입 * 

클라이언트 = 소켓 (AF_INET, SOCK_STREAM) 
client.connect (( ' 127.0.0.1 ' , 8081 ))
 동안 참 : 
    MSG = 입력 ( " >> : " ) .strip ()
     경우 (MSG) 렌 == 0 : 계속 
    client.send (msg.encode ( " UTF-8 " )) 
    데이터 = client.recv (1024 )
     인쇄 (data.decode를 ( " UTF-8 " ))
클라이언트

서버가 켜져있을 때, 당신은 여러 클라이언트를 실행하지만, 만 클라이언트가 할 수 달성, 실행하는 여러 스레드가 열립니다 서버, 이것은 자원의 낭비가 될 것입니다

추천

출처www.cnblogs.com/zhouhao123/p/10994487.html