1

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

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

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

谢谢你的帮助。

4

3 回答 3

3

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

于 2011-08-16T16:14:46.913 回答
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, ...
于 2011-08-16T16:16:30.480 回答
1

给你的服务器一个名字,然后用gethostbyname它来找到它的地址(并且,通常,把服务器名放到一个配置文件中,而不是硬编码它,尽管如果你找不到配置文件,硬编码一个默认值不会伤害)。

于 2011-08-16T16:18:37.367 回答