目前,我有我使用產卵多個可執行文件,(語音聊天服務器)一個小的Python腳本,並且在軟件的下一個版本,服務器具有接收UDP端口上的心跳信號的能力。 (在一臺機器上可能有數千臺服務器,範圍從端口7878起)多個程序使用相同的UDP端口?可能?
我的問題是,這些服務器可能(讀:將)與我的Python腳本在同一臺機器上運行,打開一個UDP端口,然後發送心跳信號,等待回覆,然後瞧......當/如果他們沒有通過查殺任務並重新加載服務器來響應,我可以重新啓動服務器。
問題是,我無法打開該服務器已在使用的UDP端口。有沒有解決的辦法?項目負責人仍然在實施心跳,所以我相信任何有關心跳系統如何實施的建議都會受到歡迎。 - 這是一個非常通用的腳本,儘管這可能適用於其他程序,所以我的主要焦點仍然在該UDP端口上進行通信。
根據定義是不可能的。每個端口一個程序就是UDP(和TCP)的工作方式。一個程序可以派發給其他程序。 – 2009-11-12 15:38:28
你是對的,通過操作系統是不可能的。如果你有網絡適配器的原始訪問權限(通過'libpcap'或類似的),這將是可能的,但不是很漂亮...... – Wim 2009-11-12 15:48:10
是否有一種實現方式圍繞此,如可能以特定方式實現心跳? 也許我可以發送廣播數據包,並將回覆發送到開放端口?所有的服務器都會得到數據包,並且可能會被指示在7877處進行回覆? - 項目主管對我懷疑的事情持開放態度。 – ThantiK 2009-11-12 15:49:13