2015-11-16 266 views
0

所以我对网络很陌生,我只是对客户/服务器体系结构感兴趣。假设您开发了一个程序,客户端版本在计算机上运行,​​服务器版本在服务器上运行(显然)。为了让客户端连接到服务器,它必须知道服务器的IP地址(以及连接的端口,以便将其路由到正确的计算机/程序)。这是否意味着服务器的IP地址不能更改?你需要具体告诉你的ISP保持IP地址是静态的吗?因为如果客户端和服务器的IP地址都发生变化,那么他们将无法连接,程序将无法工作......换句话说,必须有一个常数。当你注册一个VPS时,他们会给你一个你可以从客户端版本绑定到的静态IP地址吗?谢谢!服务器的IP地址

+0

您可以在代码中使用服务器*名称*,或者在客户端进行配置。 – EJP

+0

你是什么意思? – user3698077

+0

我的意思是什么? '名称'? “配置”? – EJP

回答

1

为了让客户端连接到服务器,它必须知道服务器的IP地址(以及连接的端口,以便将其路由到正确的计算机/程序)。

正确。

这是否意味着服务器的IP地址不能更改?

不。实际上,IP可以随时更改。大多数暴露于公共互联网的服务器都有一个在互联网DNS系统中注册的静态域名。客户端要求DNS将所需的域名解析为其当前IP地址,然后客户端可以连接到它。但即使在私有局域网中,大多数路由器也充当本地DNS服务器,允许同一网络中的机器通过机器名称发现彼此的IP。

操作系统通常会为您处理DNS。客户只需拨打gethostbyname()getaddrinfo()即可,操作系统将根据需要代客户执行DNS查询并返回报告的IP。

您是否要具体告诉您的ISP保持IP地址为静态?

你可以,但通常需要额外的费用。如果您的服务器在DNS中注册,则不需要。并且有免费/便宜的DNS系统与没有静态IP的服务器一起工作。

因为如果客户端和服务器的IP地址发生变化,那么他们就没有办法连接,程序是行不通的......

这就是DNS的用武之地。

换句话说,必须有一个常数。

可以通过DNS解析的注册域名。

当您注册VPS时,他们会给您一个静态IP地址,您可以从客户端版本绑定到该静态IP地址?

它取决于VPS服务,但更有可能的情况是您将在VPS服务的主域中分配一个静态子域。例如,myserver.thevps.com。或者,如果您购买了自己的域名(可以从任意数量的提供商以非常便宜的价格购买),您通常可以将其链接到由VPS服务运营的DNS服务器。