SYNOPSIS

#include "net.h"

int netread (int s, char *buf, int nbytes);

ssize_t netread_timeout (int s, void *buf, size_t nbytes, int timeout);

DESCRIPTION

netread receives a message from a socket. It overcomes the message fragmentation problem and always waits for all requested bytes to arrive or a timeout/error occurs.

RETURN VALUE

This routine returns the number of bytes if the operation was successful, 0 if the connection was closed by the remote end or -1 if the operation failed. In the latter case, serrno is set appropriately.

ERRORS

EINTR

The function was interrupted by a signal.

EBADF

s is not a valid descriptor.

EAGAIN

The socket is non-blocking and there is no message available.

EFAULT

buf is not a valid pointer.

EINVAL

nbytes is negative or zero.

ENOTSOCK

s is not a socket.

SECONNDROP

Connection closed by remote end.

SETIMEDOUT

Timed out.

RELATED TO netread…

recv(2), neterror(3)

AUTHOR

LCG Grid Deployment Team