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
。