PR_Accept¶
在指定的套接字上接受连接。
语法¶
#include <prio.h>
PRFileDesc* PR_Accept(
PRFileDesc *fd,
PRNetAddr *addr,
PRIntervalTime timeout);
参数¶
该函数具有以下参数
fd指向一个 PRFileDesc 对象的指针,该对象表示调用方愿意在其上接受新连接的会合套接字。
addr指向类型为 PRNetAddr 的结构体的指针。在输出时,此结构体包含连接实体的地址。
timeout类型为 PRIntervalTime 的值,指定接受操作完成的时间限制。
返回值¶
该函数返回以下值之一
成功接受连接后,指向一个新的 PRFileDesc 结构体的指针,该结构体表示新接受的连接。
如果失败,则返回
NULL。可以通过调用 PR_GetError 获取更多信息。
描述¶
套接字 fd 是一个会合套接字,已使用 PR_Bind 绑定到地址,并在调用 PR_Listen 后侦听连接。 PR_Accept 接受来自挂起连接队列的第一个连接,并为新接受的连接创建一个新的套接字。会合套接字仍然可以用于接受更多连接。
如果 addr 参数不是 NULL,则 PR_Accept 将连接实体的地址存储在 addr 指向的 PRNetAddr 对象中。
PR_Accept 会阻塞调用线程,直到成功接受新连接或发生错误。如果 timeout 参数不是 PR_INTERVAL_NO_TIMEOUT,并且在时间限制之前无法接受任何挂起的连接,则 PR_Accept 返回 NULL,错误代码为 PR_IO_TIMEOUT_ERROR。