Falexom

Untitled

Jul 23rd, 2021 (edited)
277
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.12 KB | None | 0 0
  1. import socket
  2. import selectors
  3. import sys
  4. import io
  5.  
  6.  
  7. selector = selectors.DefaultSelector()
  8.  
  9. def server():
  10.  
  11.     server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  12.     server_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
  13.     server_socket.bind(('localhost', 5000))
  14.     server_socket.listen()
  15.  
  16.     selector.registet(fileobj=server_socket, events=selectors.EVENT_READ,
  17.     data=accept_connection)
  18.  
  19. def accept_connection(server_socket):
  20.  
  21.     client_socket, addr = server_socket.accept()
  22.     print('Connection from', addr)
  23.  
  24.     selector.registet(fileobj=server_socket, events=selectors.EVENT_READ,
  25.     data=send_message)
  26.  
  27.  
  28. def send_message(client_socket):
  29.  
  30.     request = client_socket.recv(4096)
  31.  
  32.     if request:
  33.         response = 'Pong\n'.encode()
  34.         client_socket.send(response)
  35.     else:
  36.         selector.unregister(client_socket)
  37.         client_socket.close()
  38.  
  39.  
  40. def event_loop():
  41.  
  42.     while True:
  43.        
  44.         events = selector.select()  # (key, events)
  45.  
  46.         # SelectorKey
  47.         # fileobj
  48.         # events
  49.         # data
  50.  
  51.         for key, _ in events:
  52.             callback = key.data
  53.             callback(key.fileobj)
  54.  
  55.  
  56. if __name__ == '__main__':
  57.  
  58.     server()
  59.     event_loop()
Add Comment
Please, Sign In to add comment