SEND

The SEND call sends data on a specified connected socket.

The FLAGS field allows you to:

  • Send out-of-band data, such as 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, reissuing the call until all data has been sent.
Note: See EZACIC04 for a subroutine that will translate EBCDIC input data to ASCII.
Table 1. SEND call requirements
Condition Requirement
Authorization: Supervisor state or problem state, any PSW key.
Dispatchable unit mode: Task.
Cross memory mode: PASN = HASN.
Amode: 31-bit or 24-bit.
Note: See the addressability mode (Amode) considerations under CALL instruction API environmental restrictions and programming requirements.
ASC mode: Primary address space control (ASC) mode.
Interrupt status: Enabled for interrupts.
Locks: Unlocked.
Control parameters: All parameters must be addressable by the caller and in the primary address space.

Figure 1 shows an example of SEND call instructions.

Figure 1. SEND call instruction example
    WORKING-STORAGE SECTION.
        01  SOC-FUNCTION    PIC X(16)  VALUE IS 'SEND'.
        01  S               PIC 9(4) BINARY.
        01  FLAGS           PIC 9(8) BINARY.
            88  NO-FLAG                VALUE IS 0.
            88  OOB                    VALUE IS 1.
            88  DONT-ROUTE             VALUE IS 4.
        01  NBYTE           PIC 9(8) BINARY.
        01  BUF             PIC X(length of buffer).
        01  ERRNO           PIC 9(8) BINARY.
        01  RETCODE         PIC S9(8) BINARY.
 
    PROCEDURE DIVISION.
         CALL 'EZASOKET' USING SOC-FUNCTION S FLAGS NBYTE
                        BUF ERRNO RETCODE.

For equivalent PL/I and assembly language declarations, see Converting parameter descriptions.