PR_AcceptRead¶
接受新连接并接收数据块。
语法¶
#include <prio.h>
PRInt32 PR_AcceptRead(
PRFileDesc *listenSock,
PRFileDesc **acceptedSock,
PRNetAddr **peerAddr,
void *buf,
PRInt32 amount,
PRIntervalTime timeout);
参数¶
该函数具有以下参数
listenSock
指向一个 PRFileDesc 对象的指针,该对象表示一个已使用 PR_Listen 函数调用的套接字描述符,也称为会合套接字。
acceptedSock
指向一个指向 PRFileDesc 对象的指针的指针。返回时,
*acceptedSock
指向新连接套接字的 PRFileDesc 对象。此参数仅在函数返回值不指示失败时有效。peerAddr
指向一个指向 PRNetAddr 对象的指针的指针。返回时,
peerAddr
指向远程套接字的地址。peerAddr
指向的 PRNetAddr 对象将位于buf
指向的缓冲区中。此参数仅在函数返回值不指示失败时有效。buf
指向一个缓冲区的指针,用于保存对等方发送的数据和对等方的地址。此缓冲区必须足够大,以接收
amount
字节的数据和两个 PRNetAddr 结构(从而允许运行时根据需要对齐地址)。amount
要接收的数据的字节数。不包括 PRNetAddr 结构的大小。如果为 0,则不会从对等方读取任何数据。
timeout
超时间隔仅适用于操作的读取部分。 PR_AcceptRead 会无限期阻塞,直到连接被接受;读取将在超时间隔过后超时。
返回值¶
正数表示从对等方读取的字节数。
值 -1 表示失败。可以通过调用 PR_GetError 获取失败的原因。
描述¶
PR_AcceptRead 接受新连接并检索新创建套接字的描述符和连接对等方的地址。此外,顾名思义,PR_AcceptRead 会接收对等方发送的第一块数据。