Я пытаюсь построить DNS-сервер в Python. Он должен прослушивать два порта (8007 - клиент, 8008 - админ). Клиент только отправляет URL и получает соответствующий IP. Администратор имеет право изменять таблицу DNS (добавить, удалить, .. сейчас это не имеет значения).
Итак, мой вопрос: как мне реализовать сервер, постоянно прослушивающий два порта для любого возможного запроса (у нас может быть несколько клиентов одновременно, но только один администратор, когда он работает)
Мой Сервер с одним портом прослушивания:
из импорта SocketServer *
из потокового импорта *
из строки импорта *
гнездо для импорта
class Server(ForkingMixIn, TCPServer): pass #fork for each client
class Handler(StreamRequestHandler):
def handle(self):
addr = self.request.getpeername()
print 'Got connection from', addr
data=(self.request.recv(1024)).strip()
if data not in dic: #dic -> dictionary with URL:IP
self.wfile.write('0.0.0.0')
else:
self.wfile.write(dic.get(data))
server = Server(('', 8007), Handler)
server.serve_forever()