方法

以来:2.22

声明 [src]

GList*
g_resolver_lookup_by_name (
  GResolver* resolver,
  const gchar* hostname,
  GCancellable* cancellable,
  GError** error
)

描述 [src]

同步解析 hostname 以确定其关联的 IP 地址(们)。 hostname 可以是一个仅 ASCII 或 UTF-8 主机名,或 IP 地址的文本形式(在这种情况下,这将变为 g_inet_address_new_from_string() 的包装)。

如果成功, g_resolver_lookup_by_name() 将返回一个非空 GList GInetAddress,按优先级排序并保证不包含重复项。也就是说,如果您使用结果来连接到 hostname,则应首先尝试连接到第一个地址,然后是第二个如果第一个失败,等等。如果您使用该结果来监听套接字,则可以适当地使用例如 g_socket_listener_add_address() 将每个结果添加到套接字。

如果 DNS 解析失败,错误(如果非 NULL)将被设置为来自 GResolverError 的值,并将返回 NULL

如果 cancellable 是非 NULL,它可以用来取消操作,在这种情况下,错误(如果非 NULL)将被设置为 G_IO_ERROR_CANCELLED

如果您计划连接到解析出的 IP 地址上的套接字,可能更容易创建一个 GNetworkAddress 并使用其 GSocketConnectable 接口。

以来:2.22

参数

hostname

要查找的主机名。

数据由方法调用者拥有。
该值是空终止的 UTF-8 字符串。
cancellable

一个 GCancellable,或 NULL

该参数可以是 NULL
数据由方法调用者拥有。
error

可恢复错误的返回位置。

该参数可以是 NULL
如果返回位置非 NULL,则您必须将其初始化为 NULL GError*
该参数将在方法中没有错误的情况下被初始化为 NULL
错误发生时,该参数将被设置为一个新的 GError;调用者将负责数据的所有权,并负责释放它。

返回值

一个非空 GListGInetAddress,或者在出错时返回 NULL。您完成使用后,必须解除每个地址的引用并释放列表。(您可以使用 g_resolver_free_addresses() 来完成此操作。)

方法调用者拥有返回的数据,负责释放它。