我正在开发udp服务器/客户端应用程序。因为为了与服务器通信,所有客户端都必须知道服务器的ip地址和端口号。为此,我将服务器的ip和端口号硬编码到客户端,以便每次客户端都连接到相同的ip和端口号。(使用ipconfig命令找到服务器计算机的ip地址。)但现在的问题是,我在DHCP网络上工作,每次服务器重新启动时,都有可能为其分配一个新的ip地址(不同于客户端已知的ip地址,它们将连接到该ip地址)。因此,每次服务器登录时,我总是希望在客户端硬编码的ip地址被分配给服务器。有什么办法可以做到吗?我对此一无所知。我在网上找过了,但是找不到任何相关的东西。期待帮助:(
发布于 2013-04-05 14:30:21
假设您的客户机是服务器本地的,为什么不放弃硬编码的服务器IP地址,从DHCP借用一个页面并使用某种service discovery方法:
发布于 2013-04-05 14:56:00
假设你在局域网上工作,我就是这么做的。
假设您的DHCP服务器具有足够的可配置性:
大多数具有DHCP的入门级一体化设备都具有此功能,如果不具备此功能,则购买具有此功能的新设备应该相当便宜。如果您的DHCP服务器是一台真实的计算机,您肯定可以将其配置为这样做。
此外,您可能希望告诉您的客户端使用本地DNS,并在此本地DNS服务器中为您的服务器定义一个名称,这样您就不必在客户端中硬编码IP地址。但地址应该位于某个配置文件中,而不是在任何情况下硬编码。
我使用dnsmasq既充当具有本地名称的DNS服务器,又充当DHCP服务器,为服务器提供始终相同的地址,并将所有DNS请求指向其自身。
这些问题对于找到dnsmasq:https://stackoverflow.com/questions/7709744/is-there-something-like-dnsmasq-for-windows的windows替代方案可能很有用。
发布于 2013-04-05 15:09:28
通过在DHCP服务器中添加预留字段,我们可以实现这一点。如果您使用的是Windows DHCP服务器,则有一个名为“预留”的部分,我们可以在那里提供您的pc的MAC地址和所需的IP地址。然后服务器会为您提供所提到的IP。
https://stackoverflow.com/questions/15826953
复制相似问题