Pensamiento sin bloqueo para lograr la concurrencia de servidor TCP de un solo hilo de proceso único

Establezca el zócalo en el estado predeterminado sin bloqueo y use la excepción de captura para manejar la anomalía del zócalo debido al no bloqueo para lograr el funcionamiento normal del programa. Los efectos son los siguientes:

 

 

1  socket de
 importación 2 3 4 def main ():
 5      tcp_server_socket = socket.socket (socket.AF_INET, socket.SOCK_STREAM)
 6      tcp_server_socket.bind (( '' , 7788 ))
 7      tcp_server_socket.listen (128 )
 8      tcp_server_socket.setblocking ( falso)   # conjunto no obstruya socket de escucha 9. 10      client_socket_list = list ()    # proporcionó una lista almacenar socket de cliente 11. al mismo tiempo Verdadero:
 12 es la prueba :
 13 es              Puesto que el software de, client_addr = 
 
 
 

              tcp_server_socket.accept ()
 14 de          la excepción :
 15              Paso 
16              # impresión ( "no hay nuevas conexiones de cliente") 
17.          la otra cosa :
 18 es              de impresión ( " el cliente " )
 19.              new_socket.setblocking (Falso)   # socket de cliente Conjunto no obstrucción palabra 
20 es              client_socket_list.append (ya que el software de)
 21 es  
22 es          # lista está vacía no se realiza para el bucle 
23 es          para client_socket en client_socket_list:
 24              la prueba :
 25                  recv_data = client_socket.recv (1024 )
26 es              la excepción :
 27                  Paso 
28                  # impresión ( "no ha recibido los datos del cliente") 
29 de              la otra :
 30                  SI recv_data:
 31 es                      de impresión (recv_data.decode ( 'UTF-8 ' ))
 32 # cuando hay recv pero no se reciben datos, Demuestre que el cliente cerró la conexión 33 más :
 34                     client_socket_list.remove (client_socket)
 35                     client_socket.close ()
 36 37 38 if __name__ == ' __main__ ' :
 39      main ()                 
                    
 
  

Supongo que te gusta

Origin www.cnblogs.com/zuzhuangmengxiang/p/12688298.html
Recomendado
Clasificación