Accepts a new connection and receives a block of data.
#include <prio.h> PRInt32 PR_AcceptRead( PRFileDesc *listenSock, PRFileDesc **acceptedSock, PRNetAddr **peerAddr, void *buf, PRInt32 amount, PRIntervalTime timeout);
The function has the following parameters:
- A pointer to a
PRFileDescobject representing a socket descriptor that has been called with the
PR_Listenfunction, also known as the rendezvous socket.
- A pointer to a pointer to a
PRFileDescobject. On return,
*acceptedSockpoints to the
PRFileDescobject for the newly connected socket. This parameter is valid only if the function return does not indicate failure.
- A pointer a pointer to a
PRNetAddrobject. On return,
peerAddrpoints to the address of the remote socket. The
peerAddrpoints to will be in the buffer pointed to by
buf. This parameter is valid only if the function return does not indicate failure.
- A pointer to a buffer to hold data sent by the peer and the peer's address. This buffer must be large enough to receive
amountbytes of data and two
PRNetAddrstructures (thus allowing the runtime to align the addresses as needed).
- The number of bytes of data to receive. Does not include the size of the
PRNetAddrstructures. If 0, no data will be read from the peer.
- The timeout interval only applies to the read portion of the operation.
PR_AcceptReadblocks indefinitely until the connection is accepted; the read will time out after the timeout interval elapses.
- A positive number indicates the number of bytes read from the peer.
- The value -1 indicates a failure. The reason for the failure can be obtained by calling
PR_AcceptRead accepts a new connection and retrieves the newly created socket's descriptor and the connecting peer's address. Also, as its name suggests,
PR_AcceptRead receives the first block of data sent by the peer.