PR_GetConnectStatus

获取非阻塞连接的完成状态。

语法

PRStatus PR_GetConnectStatus(const PRPollDesc *pd);

参数

该函数具有以下参数

pd

指向一个 PRPollDesc 结构体的指针,其 fd 字段是套接字,其 in_flags 字段必须包含 PR_POLL_WRITEPR_POLL_EXCEPT

返回值

该函数返回以下值之一

  • 如果成功,则返回 PR_SUCCESS

  • 如果失败,则返回 PR_FAILURE。可以通过 PR_GetError 获取失败的原因。

如果 PR_GetError 返回 PR_IN_PROGRESS_ERROR,则非阻塞连接仍在进行中,尚未完成。其他错误表示连接已失败。

描述

在非阻塞套接字上 PR_Connect 由于 PR_IN_PROGRESS_ERROR 而失败后,您可以通过在套接字上调用 PR_Poll 并使用 in_flags PR_POLL_WRITE | PR_POLL_EXCEPT 来等待连接完成。当 PR_Poll 返回时,在套接字上调用 PR_GetConnectStatus 以确定非阻塞连接是成功还是失败。