方法

GioResolverlookup_service

自:2.22

声明 [src]

GList*
g_resolver_lookup_service (
  GResolver* resolver,
  const gchar* service,
  const gchar* protocol,
  const gchar* domain,
  GCancellable* cancellable,
  GError** error
)

描述 [src]

同步执行给定域中给定 serviceprotocolDNS SRV 查询,并返回一个 GSrvTarget 数组。 domain 可以是一个仅包含 ASCII 字符或 UTF-8 主机名。请注意,serviceprotocol 参数不包括实际 DNS 条目中出现的开头下划线。

如果成功,g_resolver_lookup_service() 将返回一个非空 GListGSrvTarget,按照优先级顺序排序。 (也就是说,你应该首先尝试连接到第一个目标,然后是第二个,如果第一个失败等)

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

如果 cancellable 非空,则它可以用来取消操作,在这种情况下,如果非 NULL 的话将设置 errorG_IO_ERROR_CANCELLED

如果您计划连接到该服务,通常更容易创建一个 GNetworkService 并使用其 GSocketConnectable 接口。

自可用:2.22

参数

service

类型: const gchar*

要查找的服务类型(例如,“ldap”)。

数据由方法调用者拥有。
该值是一个以 NULL 结尾的 UTF-8 字符串。
protocol

类型: const gchar*

用于 service 的网络协议(例如,“tcp”)。

数据由方法调用者拥有。
该值是一个以 NULL 结尾的 UTF-8 字符串。
domain

类型: const gchar*

要查找服务的 DNS 域。

数据由方法调用者拥有。
该值是一个以 NULL 结尾的 UTF-8 字符串。
cancellable

类型: GCancellable

一个 GCancellable,或 NULL

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

类型: GError **

恢复错误的位置返回。

此参数可以是 NULL
如果返回位置非空,则必须将其初始化为一个 NULLGError*
如果没有错误,则方法将保持参数初始化为 NULL
如果出现错误,参数将被设置为一个新的分配的 GError;调用者将获此数据的所有权,并负责释放它的内存。

返回值

类型: 一个包含 None 的列表

一个非空 GListGSrvTarget,或者在错误发生时返回 NULL。完成使用后,你必须释放每个目标和列表。(你可以使用 g_resolver_free_targets() 来完成此项操作。)

方法调用者将获取返回数据的所有权,并负责释放它的内存。