如何使用BSD套接字查找IP地址?

时间:2011-08-16 16:07:45

标签: c++ c sockets tcp bsd

我在wlan上使用BSD套接字。我注意到我的服务器计算机的IP地址在连接时偶尔会发生变化。问题是我将ip地址作为文字字符串输入到我的代码中。因此,每当它发生变化时,我都必须进入代码并在那里进行更改。如何更改代码以便它将使用当时的ip?这是服务器代码中的调用

if ((status = getaddrinfo("192.168.2.2", port, &hints, &servinfo)) != 0)

和客户端是一样的。我为双方的地址尝试了NULL,但客户端无法连接,只是给了我一个“拒绝连接”错误。

感谢您的帮助。

3 个答案:

答案 0 :(得分:3)

使用可在主机文件或DNS中查找的域名,而不是IP地址。

答案 1 :(得分:1)

命令行参数怎么样?

int main( inr argc, char* argv[] ) {
    const char* addr = "myfancyhost.domain.com"; /* default address */
    if ( argc > 1 ) {
        addr = argv[1]; /* explicit address */
    }
    if ((status = getaddrinfo(addr, ...

答案 2 :(得分:1)

为您的服务器命名,并使用gethostbyname查找其地址(通常,将服务器名称放入配置文件中而不是对其进行硬编码,但如果可以,则硬编码为默认值找到配置文件没有伤害。)