Advertisement
Guest User

Untitled

a guest
Feb 25th, 2020
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Python 1.32 KB | None | 0 0
  1. import socket
  2. import logging
  3.  
  4. logger = logging.getLogger(__name__)
  5.  
  6. class Server:
  7.  
  8.     def __init__(self,addr = ('localhost', 8000), router: Router):
  9.         self.addr = addr
  10.         self.router = router
  11.  
  12.  
  13.     def create_socket(self):
  14.     """ Функция создает, настраивает сокет """
  15.     sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  16.     sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)
  17.     sock.bind(self.addr)
  18.     sock.listen(5)
  19.     return sock
  20.  
  21.     def start_loop(self):
  22.    
  23.     with create_socket() as sock:
  24.         logging.info(f"Listen on: {ADDR}")
  25.         while True:
  26.             conn, addr = sock.accept()
  27.             logging.info(f"New connection: {addr}")
  28.             data = bytearray()  # Все данные от клиента
  29.             while True:
  30.                 r_data = conn.recv(1024)
  31.                 data.extend(r_data)
  32.                 if len(r_data) < 1024:
  33.                     break
  34.             # Получаем объект запроса
  35.             req = Request.from_http_bytes(addr, data)
  36.             conn.send(router.process_request(req))
  37.             response =router.process_request(req)
  38.             # Закрываем соединение
  39.             logging.info(f"Close connection: {addr}")
  40.             conn.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement