z/OS Communications Server: IP IMS Sockets Guide
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


SENDMSG

z/OS Communications Server: IP IMS Sockets Guide
SC27-3653-00

The SENDMSG call sends messages on a socket with descriptor S passed in an array of messages.

Table 1. SENDMSG 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 and Figure 2 show an example of SENDMSG call instructions.

Figure 1. SENDMSG call instruction example (part 1 of 2)
WORKING-STORAGE SECTION.
            01  SOC-FUNCTION    PIC X(16)  VALUE IS 'SENDMSG'.
            01  S               PIC 9(4)   BINARY.
            01  MSG-HDR.
                03  MSG-NAME        USAGE IS POINTER.
                03  MSG-NAME-LEN    PIC 9(8) BINARY.
                03  IOV             USAGE IS POINTER.
                03  IOVCNT          USAGE IS POINTER.
                03  MSG-ACCRIGHTS   USAGE IS POINTER.
                03  MSG-ACCRIGHTS-LEN USAGE IS POINTER.
 
            01  FLAGS           PIC 9(8)   BINARY.
                88  NO-FLAG                  VALUE IS 0.
                88  OOB                      VALUE IS 1.
                88  DONTROUTE                VALUE IS 4.
            01  ERRNO           PIC 9(8)   BINARY.
            01  RETCODE         PIC S9(8)  BINARY.

            01  SENDMSG-IPV4ADDR PIC 9(8) BINARY.
            01  SENDMSG-IPV6ADDR.
                05 FILLER        PIC9(16) BINARY.
                05 FILLER        PIC9(16) BINARY.
       LINKAGE SECTION.
           01 L1. 
            03 SENDMSG-IOVECTOR.
               05 IOV1A               USAGE IS POINTER.
               05 IOV1AL              PIC 9(8) COMP.
               05 IOV1L               PIC 9(8) COMP.
               05 IOV2A               USAGE IS POINTER.
               05 IOV2AL              PIC 9(8) COMP.
               05 IOV2L               PIC 9(8) COMP.
               05 IOV3A               USAGE IS POINTER.
               05 IOV3AL              PIC 9(8) COMP.
               05 IOV3L               PIC 9(8) COMP.
 
            03 SENDMSG-BUFFER1     PIC X(16).
            03 SENDMSG-BUFFER2     PIC X(16).
            03 SENDMSG-BUFFER3     PIC X(16).
            03 SENDMSG-BUFNO       PIC 9(8) COMP.
    * IPv4 socket address structure.

            03 NAME.
               05  FAMILY      PIC 9(4) BINARY.
               05  PORT        PIC 9(4) BINARY.
               05  IP-ADDRESS  PIC 9(8) BINARY.
               05  RESERVED    PIC X(8) BINARY.

    * IPv6 socket address structure.

            03 NAME.
               05  FAMILY      PIC 9(4) BINARY.
               05  PORT        PIC 9(4) BINARY.
               05  FLOWINFO    PIC 9(8) BINARY.
               05  IP-ADDRESS.
                   10 FILLER   PIC 9(16) BINARY.
                   10 FILLER   PIC 9(16) BINARY.
               05  SCOPE-ID    PIC 9(8) BINARY.
                   
       PROCEDURE DIVISION USING L1.
 
       * For IPv6.
                  MOVE 19 TO FAMILY.
                  MOVE 1234 TO PORT.
                  MOVE 0 TO FLOWINFO.
                  MOVE SENDMSG-IPV6ADDR TO IP-ADDRESS.
                  MOVE 0 TO SCOPE-ID.
       * For IPv4.
                  MOVE 2 TO FAMILY.
                  MOVE 1234 TO PORT.
                  MOVE SENDMSG-IPV4ADDR TO IP-ADDRESS.
        
                  SET MSG-NAME TO ADDRESS OF NAME.
                  MOVE LENGTH OF NAME TO MSG-NAME-LEN.
                  SET IOV TO ADDRESS OF SENDMSG-IOVECTOR.
                  MOVE 3 TO SENDMSG-BUFNO.
                  
Figure 2. SENDMSG call instruction example (part 2 of 2)
                  SET MSG-IOVCNT TO ADDRESS OF SENDMSG-BUFNO.
                  SET IOV1A TO ADDRESS OF SENDMSG-BUFFER1.
                  MOVE 0 TO IOV1AL.
                  MOVE LENGTH OF SENDMSG-BUFFER1 TO IOV1L.
                  SET IOV2A TO ADDRESS OF SENDMSG-BUFFER2.
                  MOVE 0 TO IOV2AL.
                  MOVE LENGTH OF SENDMSG-BUFFER2 TO IOV2L.
                  SET IOV3A TO ADDRESS OF SENDMSG-BUFFER3.
                  MOVE 0 TO IOV3AL.
                  MOVE LENGTH OF SENDMSG-BUFFER3 TO IOV3L.
                  SET MSG-ACCRIGHTS TO NULLS.
                  SET MSG-ACCRIGHTS-LEN TO NULLS.
                  MOVE 0 TO FLAGS.
                  MOVE 'MESSAGE TEXT 1 ' TO SENDMSG-BUFFER1.
                  MOVE 'MESSAGE TEXT 2 ' TO SENDMSG-BUFFER2.
                  MOVE 'MESSAGE TEXT 3 ' TO SENDMSG-BUFFER3.
 
           CALL 'EZASOKET' USING SOC-FUNCTION S MSG-HDR FLAGS ERRNO RETCODE.

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

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014