Previous topic |
Next topic |
Contents |
Contact z/OS |
Library |
PDF
RECVFROM z/OS Communications Server: IP IMS Sockets Guide SC27-3653-00 |
|||||||||||||||||||
The RECVFROM call receives data on a socket with descriptor S and stores it in a buffer. The RECVFROM call applies to both connected and unconnected sockets. The socket address is returned in the NAME structure. If a datagram packet is too long to fit in the supplied buffers, datagram sockets discard extra bytes. For datagram protocols, RECVFROM returns the source address associated with each incoming datagram. For connection-oriented protocols like TCP, GETPEERNAME returns the address associated with the other end of the connection. If NAME is nonzero, the call returns the address of the sender. The NBYTE parameter should be set to the size of the buffer. On return, NBYTE contains the number of data bytes received. For stream sockets, data is processed as streams of information with no boundaries separating the data. For example, if programs A and B are connected with a stream socket and program A sends 1000 bytes, each call to this function can return any number of bytes, up to the entire 1000 bytes. The number of bytes returned will be contained in RETCODE. Therefore, programs using stream sockets should place RECVFROM in a loop that repeats until all data has been received. For raw sockets, RECVFROM adds a 20-byte header. If data is not available for the socket, and the socket
is in blocking mode, RECVFROM blocks the caller until data arrives.
If data is not available and the socket is in nonblocking mode, RECVFROM
returns a -1 and sets ERRNO to 35 (EWOULDBLOCK). See FCNTL or IOCTL for
a description of how to set nonblocking mode.
Note: See EZACIC05 for a subroutine that will translate
ASCII input data to EBCDIC.
Figure 1 shows an example of RECVFROM call instructions. Figure 1. RECVFROM call
instruction example
For equivalent PL/I and assembly language declarations, see Converting parameter descriptions. |
Copyright IBM Corporation 1990, 2014
|