z/OS Communications Server: IP Sockets Application Programming Interface Guide and Reference
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


SEND

z/OS Communications Server: IP Sockets Application Programming Interface Guide and Reference
SC27-3660-00

The SEND macro sends datagrams on a specified connected socket.

FLAGS allows you to:
  • Send out-of-band data, for example, interrupts, aborts, and data marked urgent. Only stream sockets created in the AF_INET address family support out-of-band data.
  • Suppress use of local routing tables. This implies that the caller takes control of routing and writing network software.

For datagram sockets, SEND transmits the entire datagram if it fits into the receiving buffer. Extra data is discarded.

For stream sockets, data is processed as streams of information with no boundaries separating the data. For example, if a program is required to send 1000 bytes, each call to this function can send any number of bytes, up to the entire 1000 bytes, with the number of bytes sent returned in RETCODE. Therefore, programs using stream sockets should place this call in a loop and reissue the call until all data has been sent.

The following requirements apply to this call:
Read syntax diagramSkip visual syntax diagram
>>-EZASMI--TYPE=SEND--,S--=--+-number---+----------------------->
                             +-address--+   
                             +-*indaddr-+   
                             '-(reg)----'   

>--,NBYTE--=--+-number---+--,BUF--=--+-address--+--------------->
              +-address--+           +-*indaddr-+   
              +-*indaddr-+           '-(reg)----'   
              '-(reg)----'                          

>--+------------------------+--,ERRNO--=--+-address--+---------->
   '-,ALET--=--+-address--+-'             +-*indaddr-+   
               +-*indaddr-+               '-(reg)----'   
               '-(reg)----'                              

>--,RETCODE--=--+-address--+------------------------------------>
                +-*indaddr-+   
                '-(reg)----'   

>--+--------------------------------+--------------------------->
   '-,FLAGS--=--+-'MSG_OOB'-------+-'   
                +-'MSG_DONTROUTE'-+     
                +-address---------+     
                +-*indaddr--------+     
                '-(reg)-----------'     

>--+---------------------------+--+-------------------------+--->
   +-,ECB--=--+-address--+-----+  '-,ERROR--=--+-address--+-'   
   |          +-*indaddr-+     |               +-*indaddr-+     
   |          '-(reg)----'     |               '-(reg)----'     
   '-,REQAREA--=--+-address--+-'                                
                  +-*indaddr-+                                  
                  '-(reg)----'                                  

>--+------------------------+----------------------------------><
   '-,TASK--=--+-address--+-'   
               +-*indaddr-+     
               '-(reg)----'     

Keyword
Description
S
Input parameter. A value or the address of a halfword binary number specifying the socket descriptor of the socket that is sending data.
NBYTE
Input parameter. A value or the address of a fullword binary number specifying the number of bytes to transmit.
BUF
The address of the data being transmitted. The length of BUF must be at least as long as the value of NBYTE.
ALET
Optional input parameter. A fullword binary field containing the ALET of BUF. The default is 0 (primary address space).

If a nonzero ALET is specified, the ALET must represent a valid entry in the dispatchable unit access list (DU-AL) for the task issuing this call. Note that ALETs can be specified only for synchronous socket calls (for example, ECB/REQAREA cannot be specified). An exception to this is an ALET representing a SCOPE=COMMON data space.

ERRNO
Output parameter. A fullword binary field. If RETCODE is negative, this field contains an error number. See Socket call error return codes for information about ERRNO return codes.
RETCODE
Output parameter. A fullword binary field.
Value
Description
0 or >0
A successful call. The value is set to the number of bytes transmitted.
-1
Check ERRNO for an error code.
FLAGS
Input parameter. FLAGS can be a literal value or a fullword binary field:
Literal Value Binary Value Description
'MSG_OOB' X'00000001' Send out-of-band data. (Stream sockets only.)
'MSG_DONTROUTE' X'00000004' Do not route. Routing is handled by the calling program.
ECB or REQAREA
Input parameter. This parameter is required if you are using APITYPE=3. It points to a 104-byte field containing:
For ECB
A 4-byte ECB posted by TCP/IP when the macro completes.
For REQAREA
A 4-byte user token (set by you) that is presented to your exit when the response to this function request is complete.
For ECB/REQAREA
The last 100 bytes is a storage field used by the interface to save the state information.
Note: This storage must not be modified until the macro function has completed and the ECB has been posted, or the asynchronous exit has been driven.
ERROR
Input parameter. The location in your program to receive control when the application programming interface (API) processing module cannot be loaded.
TASK
Input parameter. The location of the task storage area in your program.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014