Networking 没有集中主机的网络通信。可能吗?

Networking 没有集中主机的网络通信。可能吗?,networking,tcp,udp,communication,Networking,Tcp,Udp,Communication,我有一个服务器和几个客户端,从软件角度来看,我希望客户端在不实际引用特定数据库的情况下计算出服务器的IP地址 到目前为止,我对UDP有一个误解,即UDP只将端口用作服务器和客户端之间的公共标识符,但显然我错了 要求: 我希望我的服务器每5秒左右向网络上的所有设备广播一条消息。 该消息将包含服务器的IP 已经使用这种技术的软件: iOS的照片传输应用程序,称为“照片传输应用程序”,非常容易使用,因为它基本上告诉你在Mac和iPhone上打开应用程序,然后按“发现”,然后砰!您的设备已找到对方。 但

我有一个服务器和几个客户端,从软件角度来看,我希望客户端在不实际引用特定数据库的情况下计算出服务器的IP地址

到目前为止,我对UDP有一个误解,即UDP只将端口用作服务器和客户端之间的公共标识符,但显然我错了

要求: 我希望我的服务器每5秒左右向网络上的所有设备广播一条消息。 该消息将包含服务器的IP

已经使用这种技术的软件: iOS的照片传输应用程序,称为“照片传输应用程序”,非常容易使用,因为它基本上告诉你在Mac和iPhone上打开应用程序,然后按“发现”,然后砰!您的设备已找到对方。 但是怎么做呢

如何达到我的要求

编辑 我在谷歌上搜索了一下。服务器主机位于
255.255.255.255
上,客户端连接到该地址是否可以解决我的问题

255.255.255.255
用于广播

有人能证实吗?

比广播好。另见:,&


如果您要使用广播地址(255.255.255.255)或网络广播(如192.168.1.xxx的网络广播为192.168.1.255或前缀符号为192.168.1.0/24),有关“你好”的更多信息请参见。你将受到必要的限制:你的广播永远不会离开那个网络。因此,局域网内的所有主机都将看到您的广播消息,但不会看到其他主机

null提到的多播更好,因为它可以离开您的网络并通过IP路由器。但这只有通过路由器上的特殊网络设置才可行(并且需要该路由器上的多播路由功能)


可以使用的另一种没有此类限制的技术是动态DNS(服务器将通过DNS注册自身)

你想要的是不可能的。客户机必须通过某种方式获取服务器所在位置的信息,或者必须扫描网络直到找到服务器。换句话说,您需要某种网络数据库来提供所需的信息。dns
TXT
记录,dhcp选项,诸如此类。您不希望客户端开始广播“yohooo,我在这里”,因为这只会让网络充斥着无用的流量。@MarcB请再次阅读我的问题,我添加了一些附加信息。您不能真正使用设备(客户端或服务器)分配给
255.255.255.255
,因为发送到该地址将中断网络上的每个设备(打印机、路由器、交换机、未参与的PC等)。此外,如果您还想使用IPv6,您将遇到一个问题,因为IPv6上不存在广播。你应该认真研究多播。好的,太好了。我刚刚尝试使我的服务器主机UDP位于地址
255.255.255.255
上,并且我可以成功地接收从我的Mac发送的消息。我的服务器通常将其IP设置为
192.168.1.27
,因此我认为这是我将使用的,因为所有通信都将在本地网络内进行。我的方法有任何安全问题吗?这正是Bonjour的目的。但“你好”在苹果和非苹果设备之间工作吗?。也很好。不过,我还是坚持使用UDP
255.255.255.255
。随着时间的推移,更好的技术将得到实施。因此,如果我只想向家庭网络中的所有设备广播,则可以使用地址
255.255.255
?@vaid it OK,前提是您的家庭网络仅包含一个IP网络。如果您有两个网络(例如:192.168.1.xxx和192.168.2.xxx,它们之间有路由器),它将不工作。@Dmitroporoh多播不会通过internet进行。广播可以配置为通过多个子网。192.168.0.255将保留在同一子网中。广播不受欢迎。它在IPv6中不存在。