【发布时间】:2012-01-13 08:21:53
【问题描述】:
我正在编写一个教学客户端-服务器游戏。我想当服务器启动时,它会在屏幕上打印一个inet 地址。我知道一台机器可以有多个inet 地址,但我只需要一个,并且可以轻松获得。
编辑: 在测试客户端-服务器交互期间,我使用地址 127.0.0.1。现在我想通过互联网测试客户端在另一台机器上时的客户端-服务器交互。为此,我必须从服务器程序获取 IP 地址(我希望服务器在屏幕上打印一个 inet 地址)并将其提供给客户端程序。很抱歉造成误会。
【问题讨论】:
-
使用这个,它是免费的:
127.0.0.1 -
太糟糕了,你至少会有两个:上面提到的环回地址(虽然它只对本地流量有用),以及物理网卡地址(可能更多)。您需要遍历所有这些并选择最有可能的一个。
-
当你
bind套接字时,不要使用特定的 IP 地址,而是使用INADDR_ANY。然后您的服务器将侦听所有接口上的连接(即机器上的所有 IP 地址)。 -
为什么这个问题被否决了?在 C 中获取您自己的网络地址并不是一目了然,而且很多提出问题的方法都没有得到很好的回应。
标签: c network-programming