我正在尝试在 python 中构建 DNS 服务器。它必须监听两个端口(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()