方法
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掩码。