虚拟方法
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;调用者将拥有数据,并负责释放它。