GioSocketClient

since: 2.22

描述 [src]

class Gio.SocketClient : GObject.Object
{
  priv: GSocketClientPrivate*
}

GSocketClient 是一个轻量级的高层实用工具类,用于通过面向连接的套接字类型连接到网络主机。

您创建一个 GSocketClient 对象,设置所需的任何选项,然后调用同步或异步连接操作,在成功的情况下返回一个 GSocketConnection 子类。

返回的 GSocketConnection 对象的类型取决于正在使用的底层套接字类型。例如,对于 TCP/IP 连接,它将是一个 GTcpConnection

由于 GSocketClient 是一个轻量级对象,因此您不需要缓存它。您只需在需要时创建一个新实例即可。

Available since: 2.22

祖先

构造函数

g_socket_client_new

创建一个带有默认选项的新 GSocketClient

since: 2.22

实例方法

g_socket_client_add_application_proxy

启用应用程序处理代理协议。当GProxyResolver返回指定的代理协议时,GSocketClient将认为该协议是受支持的,但不会尝试查找一个用于处理握手的GProxy实例。应用程序必须通过在返回的GSocketConnection上调用g_socket_connection_get_remote_address()来检查这种情况,并查看是否为适当类型的GProxyAddress,以确定是否需要自行处理代理握手。

g_socket_client_connect

尝试解析connectable并与其建立网络连接。

since: 2.22

g_socket_client_connect_async

这是g_socket_client_connect()的异步版本。

since: 2.22

g_socket_client_connect_finish

完成异步连接操作。参见g_socket_client_connect_async()。

since: 2.22

g_socket_client_connect_to_host

这是g_socket_client_connect()的辅助函数。

since: 2.22

g_socket_client_connect_to_host_async

这是g_socket_client_connect_to_host()的异步版本。

since: 2.22

g_socket_client_connect_to_host_finish

完成异步连接操作。参见g_socket_client_connect_to_host_async()。

since: 2.22

g_socket_client_connect_to_service

尝试创建到服务的TCP连接。

g_socket_client_connect_to_service_async

这是g_socket_client_connect_to_service()的异步版本。

since: 2.22

g_socket_client_connect_to_service_finish

完成异步连接操作。参见g_socket_client_connect_to_service_async()。

since: 2.22

g_socket_client_connect_to_uri

这是g_socket_client_connect()的辅助函数。

since: 2.26

g_socket_client_connect_to_uri_async

这是g_socket_client_connect_to_uri()的异步版本。

since: 2.26

g_socket_client_connect_to_uri_finish

完成异步连接操作。参见g_socket_client_connect_to_uri_async()。

since: 2.26

g_socket_client_get_enable_proxy

获取代理启用状态;参见g_socket_client_set_enable_proxy()。

since: 2.26

g_socket_client_get_family

获取套接字客户端的套接字族。

since: 2.22

g_socket_client_get_local_address

获取套接字客户端的本地地址。

since: 2.22

g_socket_client_get_protocol

获取套接字客户端的协议名称类型。

since: 2.22

g_socket_client_get_proxy_resolver

获取client正在使用的GProxyResolver。通常,这将是通过g_proxy_resolver_get_default()返回的解析器,但您可以使用g_socket_client_set_proxy_resolver()覆盖它。

since: 2.36

g_socket_client_get_socket_type

获取套接字客户端的套接字类型。

since: 2.22

g_socket_client_get_timeout

获取由client创建的套接字的I/O超时时间。

since: 2.26

g_socket_client_get_tls

获取client是否创建TLS连接。有关详细信息,请参阅g_socket_client_set_tls()

since: 2.28

g_socket_client_get_tls_validation_flags

获取通过client创建TLS连接时使用的TLS验证标志。

已弃用:2.72 since: 2.28

g_socket_client_set_enable_proxy

设置client是否尝试通过代理服务器建立连接。当启用(默认值)时,GSocketClient将使用GProxyResolver来确定是否需要如同SOCKS这样的代理协议,并自动完成必要的代理协商。

since: 2.26

g_socket_client_set_family

设置套接字客户端的套接字族。如果将其设置为一个不同于G_SOCKET_FAMILY_INVALID的值,则此对象创建的套接字将属于指定族。

since: 2.22

g_socket_client_set_local_address

设置套接字客户端的本地地址。由该对象创建的套接字将在连接之前绑定到指定的地址(如果不是 NULL)。

since: 2.22

g_socket_client_set_protocol

设置套接字客户端的协议。由该对象创建的套接字将使用指定的协议。

since: 2.22

g_socket_client_set_proxy_resolver

覆盖 GProxyResolverclient 使用的。如果您想使用特定代理,而不是使用系统默认的代理设置,则可以调用此方法。

since: 2.36

g_socket_client_set_socket_type

设置套接字客户端的套接字类型。由该对象创建的套接字将是指定的类型。

since: 2.22

g_socket_client_set_timeout

设置由 client 创建的套接字的 I/O 超时。超时是一个以秒为单位的时间,或 0 代表无超时(默认值)。

since: 2.26

g_socket_client_set_tls

确定是否由 client 创建 TLS(即是 SSL)连接。如果 TRUE,则 client 将在连接时将连接包装在 GTlsClientConnection 中,并执行 TLS 握手。

since: 2.28

g_socket_client_set_tls_validation_flags

设置通过 client 创建 TLS 连接时使用的 TLS 验证标志。默认值是 G_TLS_CERTIFICATE_VALIDATE_ALL

已弃用:2.72 since: 2.28

GObject 继承的方法(43)

请参看 GObject 以获得方法的完整列表。

属性

Gio.SocketClient:enable-proxy

启用代理支持。

since: 2.22

Gio.SocketClient:family

用于套接字构造的地址族。

since: 2.22

Gio.SocketClient:local-address

构造的套接字将绑定的本地地址。

since: 2.22

Gio.SocketClient:protocol

用于套接字构造的协议,或 0 代表默认值。

since: 2.22

Gio.SocketClient:proxy-resolver

要使用的代理解析器。

since: 2.36

Gio.SocketClient:timeout

套接字的 I/O 超时,以秒为单位,或 0 代表无超时。

since: 2.22

Gio.SocketClient:tls

是否创建 TLS 连接。

since: 2.22

Gio.SocketClient:tls-validation-flags

创建 TLS 连接时使用的 TLS 验证标志。默认值是 G_TLS_CERTIFICATE_VALIDATE_ALL

已弃用:2.72 

Gio.SocketClient:type

用于套接字构造的类型。

since: 2.22

信号

Gio.SocketClient::event

client connectable 活动状态改变时发出。在其他事情中,这可以用来提供关于网络连接的进度信息。不同 event 值的含义如下:

since: 2.32

GObject 继承的信号(1)
GObject::notify

当对象的一个属性通过 g_object_set_property(), g_object_set(), 等等方法设置值时,发出通知信号。

类结构

struct GioSocketClientClass {
  GObjectClass parent_class;
  void (* event) (
    GSocketClient* client,
    GSocketClientEvent event,
    GSocketConnectable* connectable,
    GIOStream* connection
  );
  void (* _g_reserved1) (
void
  );
  void (* _g_reserved2) (
void
  );
  void (* _g_reserved3) (
void
  );
  void (* _g_reserved4) (
void
  );
  
}

没有可用的描述。

类成员
parent_class: GObjectClass

没有可用的描述。

event: void (* event) ( GSocketClient* client, GSocketClientEvent event, GSocketConnectable* connectable, GIOStream* connection )

没有可用的描述。

_g_reserved1: void (* _g_reserved1) ( void )

没有可用的描述。

_g_reserved2: void (* _g_reserved2) ( void )

没有可用的描述。

_g_reserved3: void (* _g_reserved3) ( void )

没有可用的描述。

_g_reserved4: void (* _g_reserved4) ( void )

没有可用的描述。

虚拟方法

Gio.SocketClientClass.event
没有可用的描述。