我们正在实现以下链接中提到的NTP服务器代码:
https://github.com/limifly/ntpserver/blob/master/ntpserver.py
我们唯一需要做的更改是我们的NTP服务器需要绑定到两个IP-一个称为主IP,另一个称为辅助IP。逻辑是一些客户端池将基于某个配置连接到每个客户端。因此,我们需要两个recvThread / workThread
我对Python和线程的了解非常有限。如下所示的代码修改是否可以达到目的:
listenPrimaryIp = primaryip
secondaryip = secondaryip
listenPort = 123
prisocket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
prisocket.bind((listenPrimaryIp,listenPort))
print ("local primary socket: ", prisocket.getsockname())
secsocket = socket.socket(socket.AF_INET,socket.SOCK_DGRAM) #added
secsocket.bind((secondaryip,listenPort)) #added
print ("local secondary socket: ", secsocket.getsockname())
precvThread = RecvThread(prisocket)
precvThread.start()
pworkThread = WorkThread(prisocket)
pworkThread.start()
srecvThread = RecvThread(secsocket) #added
srecvThread.start() #added
sworkThread = WorkThread(secsocket) #added
sworkThread.start() #added
while True:
try:
time.sleep(0.5)
except KeyboardInterrupt:
print ("Exiting...")
stopFlag = True
precvThread.join()
pworkThread.join()
srecvThread.join() #added
sworkThread.join() #added
prisocket.close()
secsocket.close() #added
print ("Exited")
#break
return 0