界面

GioProxy

since: 2.26

描述 [src]

interface Gio.Proxy : GObject.Object

GProxy 会处理通过给定类型的代理服务器连接到远程主机的连接。gio-proxy 扩展点实现了该代理。扩展点是使用代理协议名称来命名的。例如,可以使用名称 socks5 和函数 g_io_extension_point_get_extension_by_name() 来检索 SOCKS5 代理实现。

自 2.26 起提供

先决条件

为了实现代理,类型必须继承自GObject

函数

g_proxy_get_default_for_protocol

寻找支持指定 protocol 的代理实现的 gio-proxy 扩展点。

since: 2.26

实例方法

g_proxy_connect

connection 与代理进行通信(例如,连接到代理服务器的 GSocketConnection),这将使用必要的握手来连接到 proxy_address,如果需要,将对 GIOStream 进行包装来处理代理 有效负载。

since: 2.26

g_proxy_connect_async

g_proxy_connect() 的异步版本。

since: 2.26

g_proxy_connect_finish

参见 g_proxy_connect()。

since: 2.26

g_proxy_supports_hostname

一些代理协议会期望传递主机名,然后他们会自己将其解析为 IP 地址。其他协议(如 SOCKS4)不允许这样做。如果 proxy 正在实施这样的协议,此函数将返回 FALSE。当返回 FALSE 时,应该首先解析目标主机名,然后将包含字符串化 IP 地址的 GProxyAddress 传递给 g_proxy_connect() 或 g_proxy_connect_async()。

since: 2.26

接口结构

struct GioProxyInterface {
  GTypeInterface g_iface;
  GIOStream* (* connect) (
    GProxy* proxy,
    GIOStream* connection,
    GProxyAddress* proxy_address,
    GCancellable* cancellable,
    GError** error
  );
  void (* connect_async) (
    GProxy* proxy,
    GIOStream* connection,
    GProxyAddress* proxy_address,
    GCancellable* cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data
  );
  GIOStream* (* connect_finish) (
    GProxy* proxy,
    GAsyncResult* result,
    GError** error
  );
  gboolean (* supports_hostname) (
    GProxy* proxy
  );
  
}

提供用于处理代理连接和 有效负载的接口。

接口成员
g_iface
GTypeInterface
 

父 接口。

connect
GIOStream* (* connect) (
    GProxy* proxy,
    GIOStream* connection,
    GProxyAddress* proxy_address,
    GCancellable* cancellable,
    GError** error
  )
 

连接到代理服务器并对 (如果需要) #connection 进行包装来处理 有效负载。

connect_async
void (* connect_async) (
    GProxy* proxy,
    GIOStream* connection,
    GProxyAddress* proxy_address,
    GCancellable* cancellable,
    GAsyncReadyCallback callback,
    gpointer user_data
  )
 

connect() 相同,但为 异步。

connect_finish
GIOStream* (* connect_finish) (
    GProxy* proxy,
    GAsyncResult* result,
    GError** error
  )
 

返回 connect_async() 的结果。

supports_hostname
gboolean (* supports_hostname) (
    GProxy* proxy
  )
 

返回代理是否支持主机名 查找。

虚拟方法

Gio.Proxy.connect

connection 与代理进行通信(例如,连接到代理服务器的 GSocketConnection),这将使用必要的握手来连接到 proxy_address,如果需要,将对 GIOStream 进行包装来处理代理 有效负载。

since: 2.26

Gio.Proxy.connect_async

g_proxy_connect() 的异步版本。

since: 2.26

Gio.Proxy.connect_finish

参见 g_proxy_connect()。

since: 2.26

Gio.Proxy.supports_hostname

一些代理协议会期望传递主机名,然后他们会自己将其解析为 IP 地址。其他协议(如 SOCKS4)不允许这样做。如果 proxy 正在实施这样的协议,此函数将返回 FALSE。当返回 FALSE 时,应该首先解析目标主机名,然后将包含字符串化 IP 地址的 GProxyAddress 传递给 g_proxy_connect() 或 g_proxy_connect_async()。

since: 2.26