【问题标题】:how to make a server and client run on any machine如何使服务器和客户端在任何机器上运行
【发布时间】:2013-03-09 17:40:48
【问题描述】:

我用 C++ 创建了一个客户端服务器程序。但我的问题是,如果服务器在某台计算机上,客户端只能连接到服务器,因为客户端必须知道服务器的 IP 地址才能使用此代码进行连接:

ServerAddr.sin_addr.s_addr = inet_addr("10.13.32.112");

所以我的问题是如何让客户端自动找到服务器,而无需每次都更改代码中的 IP 地址?

【问题讨论】:

  • 不能使用主机名吗?
  • 对不起,我不明白那是什么。你能解释一下吗?

标签: c++ tcp udp client-server broadcast


【解决方案1】:

来自我的评论:

为什么不使用主机名?

主机名是人类友好的名称,指代一台或多台计算机。这方面的一个例子是互联网上的域名——我不需要输入堆栈溢出的 IP 地址,我只需输入 stackoverflow.com。

在您的情况下,您可以设置一个域名以指向您尝试连接的服务器,然后将该主机名解析为您的 C++ 代码中的 IP 地址。

【讨论】:

  • 所以当客户端运行时我仍然需要告诉它服务器的主机名还是它自己连接?
  • 您必须通过某种方式指定客户端,无论是主机名还是 IP 地址。
  • 好的,所以我基本上不可能把服务器拿在另一台电脑上运行,客户端必须找到它?
  • 是的,除非您给服务器一个主机名,然后更改与其关联的 IP 地址(通过 DNS)。即便如此,新 IP 地址过滤到客户端仍然存在滞后时间。
  • 那么 INADDR_BRAODCAST 是做什么的?有人告诉我这可能会有所帮助,但我猜这个信息是错误的
猜你喜欢
  • 1970-01-01
  • 2017-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-31
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多