Network programming 同一台计算机上对等方的UDP自动发现

Network programming 同一台计算机上对等方的UDP自动发现,network-programming,autodiscovery,Network Programming,Autodiscovery,我将其视为在分布式应用程序中构建对等点自动发现的灵感 我已经按照这个模型在Python中使用UDP构建了一个简单的原型应用程序。它似乎有(显然,回顾过去)的局限性,即它只适用于在所有对等机都在其他机器上的情况下检测对等机。这是由于发现端口上的套接字绑定操作造成的 阅读上的内容告诉我,我不能像ZRE中描述的那样使用UDP广播方案来实现这一点 如果您需要为分布式应用程序构建自动发现机制,以便多个应用程序实例(可能具有不同版本)可以在同一台计算机上运行,您将如何构建它?您应该能够将每个服务器实例绑定到

我将其视为在分布式应用程序中构建对等点自动发现的灵感

我已经按照这个模型在Python中使用UDP构建了一个简单的原型应用程序。它似乎有(显然,回顾过去)的局限性,即它只适用于在所有对等机都在其他机器上的情况下检测对等机。这是由于发现端口上的套接字绑定操作造成的

阅读上的内容告诉我,我不能像ZRE中描述的那样使用UDP广播方案来实现这一点


如果您需要为分布式应用程序构建自动发现机制,以便多个应用程序实例(可能具有不同版本)可以在同一台计算机上运行,您将如何构建它?

您应该能够将每个服务器实例绑定到不同的地址。整个子网127.0.0.0/8应解析为您的本地主机,因此您可以设置(例如)一个服务侦听127.0.0.1,另一个服务侦听127.0.0.2,等等。从127.0.0.1到127.255.255.254的任何内容

# works as expected
nc -l 127.0.0.100 3000 &
nc -l 127.0.0.101 3000 &

# shows error "nc: Address already in use"
nc -l 127.0.0.1 3000 &
nc -l 127.0.0.1 3000 &

哇,真漂亮!甚至没有意识到这是可能的。你需要试试这个!