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

How to find ip addresses with BSD sockets?

本文关键字:ip 地址 查找 套接字 何使用 BSD      更新时间:2023-10-16

我在wlan上使用BSD套接字。我注意到,我的服务器计算机的ip地址偶尔变化,当我连接到它。问题是我将ip地址作为字面值字符串输入到代码中。所以无论何时它发生变化,我都必须进入代码并在那里进行更改。我怎样才能改变代码,使它将使用任何ip是在时间?这是服务器代码

中的调用
if ((status = getaddrinfo("192.168.2.2", port, &hints, &servinfo)) != 0)

和客户端是一样的。我尝试为两边的地址NULL,但客户端不会连接,只是给我一个"连接拒绝"错误。

谢谢你的帮助

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

命令行参数如何?

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, ...

给您的服务器一个名称,并使用gethostbyname来查找它的地址(并且,通常,将服务器名称放入配置文件中,而不是硬编码它,尽管如果找不到配置文件,硬编码默认值也没关系)。