With each client access, the server generates a process to serve the client, and when the client is many, it consumes a lot of system resources as many processes.
From socket Import *
Import time
Import OS
Import Sys
Import threading
def client_deal (Client,client_info):
while True:
msg = CLIENT.RECV (1024)
if "':
Client.close ()
Break
Print ' recv= ', MSG,' from: ', Cleint_info
Client.send (' echo ' + msg)
if ' Q ':
Client.close ()
Break
def thread_process (Client,client_info):
P_thread = Threading. Thread (target=client_deal,args= (Client,client_info))
P_thread.setdaemon (True)
P_thread.start ()
Print "Start one thread"
if ' __main__ ':
Tcp_server = socket (af_inet,sock_stream)
Tcp_server.bind ((' localhost ', 5001))
Tcp_server.listen (5)
while True:
Print ' pid= ', Os.getpid (),"Wait client"
Client,client_info = Tcp_server.accept ()
Print Client_info
Client_process (Client,client_info)
Tcp_server.close ()
Multithreaded Socket model