方法

GioSocketClientconnect_to_host

自从: 2.22

声明 [源代码]

GSocketConnection*
g_socket_client_connect_to_host (
  GSocketClient* client,
  const gchar* host_and_port,
  guint16 default_port,
  GCancellable* cancellable,
  GError** error
)

描述 [源代码]

这是 g_socket_client_connect() 的辅助函数。

尝试与命名的主机建立 TCP 连接。

host_and_port 可采用多种认可的格式;IPv6 地址、IPv4 地址或域名(在这种情况下将 performs DNS 查找)。支持对所有地址类型的字符串引用。可以通过冒号指定端口覆盖。端口号可以是十进制数字或符号名称(在这种情况下会进行 /etc/services 查找)。

如果 host_and_port 中没有指定端口覆盖,则将使用 default_port 作为连接的端口号。

通常,host_and_port 应由用户提供(允许他们提供主机名,如果需要,还可以提供端口覆盖),而 default_port 应由应用提供。

如果提供了 IP 地址,将进行单次连接尝试。如果提供了名称,则可能会多次进行连接尝试,依次进行,次数根据 DNS 中的地址记录的数量,直到成功连接。

成功连接后,将构建一个新的 GSocketConnection 并返回。调用者拥有此新对象,必须在完成时释放对其的引用。

在发生任何故障(DNS错误、服务未找到、无可连接的主机)时,将返回NULL,并根据情况将error(如果非NULL)设置为相应的值。

自2.22版起提供。

参数

host_and_port

类型: const gchar*

要连接的主机的名称和可选端口号。

数据属于该方法的调用者。
该值是一个以NUL结尾的UTF-8字符串。
default_port

类型: guint16

默认连接端口号。

cancellable

类型: GCancellable

一个GCancellable,或NULL

该参数可以是NULL
数据属于该方法的调用者。
error

类型: GError **

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

该参数可以是NULL
如果返回位置不是NULL,则必须将其初始化为NULL GError*
如果没有错误,该方法将留空地初始化该参数为NULL
如果发生错误,该参数将被设置为新分配的GError;调用者将获取数据的所有权,并负责释放它。

返回值

类型: GSocketConnection

成功时返回一个GSocketConnection,错误时返回NULL

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