服务器的IP地址

时间:2015-11-16 03:25:54

标签: sockets ip

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

1 个答案:

答案 0 :(得分:1)

  

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

正确。

  

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

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

操作系统通常会为您处理DNS。客户端可以简单地调用gethostbyname()或可以getaddrinfo(),操作系统将代表客户端执行DNS查询并返回报告的IP。

  

您是否必须明确告诉您的ISP保持IP地址静态?

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

  

因为如果客户端和服务器的IP地址都发生了变化,那么他们将无法连接,程序将无法工作......

这就是DNS发挥作用的地方。

  

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

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

  

当您注册VPS时,他们会为您提供可以从客户端版本绑定的静态IP地址吗?

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