虚拟方法

GioResolverlookup_by_name

since: 2.22

声明 [src]

GList*
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解析失败,则error(如果不是NULL)将被设置为一个来自 GResolverError的值,并将返回NULL

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

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

Available since: 2.22

参数

hostname

类型: const gchar*

要查找的主机名。

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

类型: GCancellable

A GCancellable,或NULL

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

类型: GError **

用于可恢复错误的返回位置

参数可以是NULL。
如果返回位置不是NULL,则必须将其初始化为NULL GError*。
如果没有错误,虚拟函数将使参数保持在初始化状态为NULL。
在错误的情况下,参数将被设置为新分配的GError;调用者将拥有数据,并负责释放它。

返回值

类型: 一个GInetAddress*的列表

非空的GList类型的GInetAddress,或在出错时返回NULL。您必须在使用完毕后取消每个地址的引用并释放列表。(您可以使用g_resolver_free_addresses()来完成此操作。)

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