方法

GioSocketcreate_source

自:2.22

声明 [源码]

GSource*
g_socket_create_source (
  GSocket* socket,
  GIOCondition condition,
  GCancellable* cancellable
)

描述 [源码]

创建一个可以绑定到GMainContext的GSource,以监控套接字上指定的condition条件。GSource保留对socket的引用。

源上的回调函数是 GSocketSourceFunc 类型。

condition 中指定 G_IO_ERRG_IO_HUP 没有意义;如果这些条件为真,总会报告输出。

如果 cancellable 不是 NULL,则可以使用它来取消源,这会导致源引发,并报告当前的条件(除非取消与条件变化同时发生,否则可能是 0)。您可以在回调中通过使用 g_cancellable_is_cancelled() 来检查这一点。

如果 socket 已设置超时且在 condition 发生之前达到,则源将触发,并报告 G_IO_ING_IO_OUT,具体取决于 condition。然而,socket 将被标记为已超时,因此您下次调用 GSocket I/O 方法时,将失败并返回 G_IO_ERROR_TIMED_OUT

自 2.22 版本起可用

此方法对语言绑定不可直接访问。

参数

condition

类型:GIOCondition

要监控的 GIOCondition 掩码。

cancellable

类型:GCancellable

%GCancellable 或 NULL

该参数可以为 NULL
数据由方法的调用者拥有。

返回值

类型:GSource

一个新分配的 %GSource,使用 g_source_unref() 释放。

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