# PR_AcceptRead Accepts a new connection and receives a block of data. ## Syntax ```{code} #include PRInt32 PR_AcceptRead( PRFileDesc *listenSock, PRFileDesc **acceptedSock, PRNetAddr **peerAddr, void *buf, PRInt32 amount, PRIntervalTime timeout); ``` ### Parameters The function has the following parameters: `listenSock` : A pointer to a {ref}`PRFileDesc` object representing a socket descriptor that has been called with the {ref}`PR_Listen` function, also known as the rendezvous socket. `acceptedSock` : A pointer to a pointer to a {ref}`PRFileDesc` object. On return, `*acceptedSock` points to the {ref}`PRFileDesc` object for the newly connected socket. This parameter is valid only if the function return does not indicate failure. `peerAddr` : A pointer a pointer to a {ref}`PRNetAddr` object. On return, `peerAddr` points to the address of the remote socket. The {ref}`PRNetAddr` object that `peerAddr` points to will be in the buffer pointed to by `buf`. This parameter is valid only if the function return does not indicate failure. `buf` : 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 `amount` bytes of data and two {ref}`PRNetAddr` structures (thus allowing the runtime to align the addresses as needed). `amount` : The number of bytes of data to receive. Does not include the size of the {ref}`PRNetAddr` structures. If 0, no data will be read from the peer. `timeout` : The timeout interval only applies to the read portion of the operation. {ref}`PR_AcceptRead` blocks indefinitely until the connection is accepted; the read will time out after the timeout interval elapses. ### Returns - 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 {ref}`PR_GetError`. ## Description {ref}`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, {ref}`PR_AcceptRead` receives the first block of data sent by the peer.