python non-blocking tcp server

 
 
import socket

import time


def main():
    #Create a tcp server
    tcp_server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    #Multiplex tcp_server.setsockopt
    (socket.SOL_SOCKET, socket.SO_REUSEADDR, 1 )

   #Bind tcp_server.bind
    (( "" , 8976 ))

   #Passive tcp_server.listen
 ( 128 )   

   #Set non-blocking
    tcp_server.setblocking( False )

   #Client list
    clients = list ()

   while True:
      time.sleep(1)
      try:
         client, addr = tcp_server.accept()

         print(client)
         client.setblocking( False )
          #If there is a client, put it in
          clients.append(client)


      except Exception as e:
          print ( "------- no client ------" )

      #List loop
 for client_new in clients:      

         try:
            data = client_new.recv( 1024 ).decode()
             if data:
                #with data
 print (data)
             else :
                #close the client
 client_new.close   () #close the client
 clients.remove(client_new) #loop   to delete
 except Exception as e :
             print ( "------ No data -----" )                                             
         


   tcp_server.close()


if __name__ == '__main__':
   main()

Guess you like

Origin http://43.154.161.224:23101/article/api/json?id=324523267&siteId=291194637