PythonでDNSサーバーを構築しようとしています。2 つのポート (8007 - クライアント、8008 - 管理者) をリッスンする必要があります。クライアントは URL のみを送信し、それぞれの IP を受信します。管理者には、DNS テーブルを変更する権限があります (追加、削除、.. 現時点では問題ありません)。
したがって、私の質問は次のとおりです。最終的な要求に対して2つのポートで継続的にリッスンするサーバーを実装するにはどうすればよいですか(同時に複数のクライアントを持つことができますが、彼が操作しているときは管理者は1人だけです)
1 つのリッスン ポートを持つサーバー:
from SocketServer import * from threading import * from string import * import socket
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()