NTP服务器绑定到2个IP地址主/辅

2024-09-28 03:11:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我们正在实现一个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

Tags: ipaddedsocketstartprintjoinntplistenport

热门问题