BSD Sockets Interface Programmer's Guide

Chapter 6 137
Using UNIX Domain Stream Sockets
Sending and Receiving Data
Function result: number of bytes actually sent, –1 if failure occurs.
Example: count = send (s, buf, 10, 0);
send blocks until the specified number of bytes have been queued to be
sent, unless you are using nonblocking I/O.
When to Send Data
The server or client process should send data after connection is
established. Refer to the send(2) man page for more information on
send.
Receiving Data
recv and its parameters are described in the following table.
Include files: #include <sys/types.h>
#include <sys/socket.h>
System call: count = recv(s,buf,len,flags)
int s;
char *buf;
int len, flags;
Function result: number of bytes actually received, –1 if failure occurs.
Example: count = recv(s, buf, 10, 0);
recv blocks until there is at least 1 byte of data to be received, unless
you are using nonblocking I/O. The host does not wait for len bytes to be
available; if less than len bytes are available, that number of bytes are
received.
Parameter Description of Contents INPUT Value
s socket descriptor of local
socket
socket descriptor of
socket sending data
buf pointer to data buffer pointer to data to be sent
len maximum number of bytes
that should be received
size of data buffer
flags settings for optional flags 0