マルチスレッドソケットサーバーベースのサポート同時

プロセスプール|スレッドプール(同期、非同期、ブロッキング、非ブロッキング)
マルチスレッド:IO集中型
マルチプロセス:計算集約的な
スレッドユニットを実行するCPUであり、プロセスは、リソース単位であります
ソケットのインポート *
 からスレッド輸入スレッド

デフcomunicat(conn)を:
     ながら真:   #は、通信循环
        してみてください
            データ = conn.recv(1024 場合(データ)== 0でlen:ブレーク
            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) 

        通信 
        トン=スレッド(対象= 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)でlen == 0:続ける
    client.send(msg.encode(' UTF-8 ' ))
    データ = client.recv(1024 プリント(data.decode(' UTF-8 '))
クライアント

サーバーの電源がオンになっているとき、あなたは複数のクライアントを実行しますが、1万クライアントが存在することができます達成し、実行するために複数のスレッドを開きます。サーバは、これは資源の無駄になります

おすすめ

転載: www.cnblogs.com/zhouhao123/p/10994487.html