方法
GioDatagramBasedcondition_check
自:2.48
声明 [源代码]
GIOCondition
g_datagram_based_condition_check (
GDatagramBased* datagram_based,
GIOCondition condition
)
描述 [源代码]
检查datagram_based
的操作就绪状态。会检查并掩蔽datagram_based
上当前满足的条件,以确定condition
中指定的操作。结果将被返回。
如果使用g_datagram_based_receive_messages()
可以读取数据或连接已由远端关闭(EOS),则返回值中将设置G_IO_IN
;如果数据报式尚未使用某些实现特定方法(例如,使用g_socket_close()
或带有shutdown_read
设置的g_socket_shutdown()
)本地关闭(如果它是GSocket
)。
如果连接关闭或断开(例如,通过调用带有shutdown_read
设置的g_socket_close()
或g_socket_shutdown()
),则对此函数的所有调用都将返回G_IO_ERROR_CLOSED
。
如果预期可以使用g_datagram_based_send_messages()
发送至少一个字节而不会阻塞,则将设置G_IO_OUT
。如果数据报式已被本地关闭,则不会设置G_IO_OUT
。
如果连接已本地关闭,则将设置G_IO_HUP
。
如果在之前使用g_datagram_based_send_messages().
发送数据时出现异步错误,则将设置G_IO_ERR
。
请注意,在Windows上,在g_datagram_based_condition_check()
声明GDatagramBased
准备好写入之后,操作可能返回G_IO_ERROR_WOULD_BLOCK
。与其调用g_datagram_based_condition_check()
并在成功后写入到GDatagramBased
,通常更好的做法是立即尝试写入,如果初始尝试返回G_IO_ERROR_WOULD_BLOCK
,稍后再尝试。
在condition
中指定G_IO_ERR
或G_IO_HUP
没有意义;如果这些条件为真,则始终会在输出中设置它们。除了这些标志外,输出还被condition
掩蔽。
此调用从未阻塞。
自可用:2.48
参数
condition
-
类型:
GIOCondition
要检查的
GIOCondition
掩码。
返回值
类型: GIOCondition
当前状态的GIOCondition
掩码。