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


ACCEPT call

z/OS Communications Server: IP CICS Sockets Guide
SC27-3649-00

A server issues the ACCEPT call to accept a connection request from a client. The call points to a socket that was previously created with a SOCKET call and marked by a LISTEN call.

The ACCEPT call is a blocking call. When issued, the ACCEPT call:

  1. Accepts the first connection on a queue of pending connections.
  2. Creates a new socket with the same properties as s, and returns its descriptor in RETCODE. The original sockets remain available to the calling program to accept more connection requests.
  3. The address of the client is returned in NAME for use by subsequent server calls.
Note:
  • The blocking or nonblocking mode of a socket affects the operation of certain commands. The default is blocking; nonblocking mode can be established by use of the FCNTL and IOCTL calls. When a socket is in blocking mode, an I/O call waits for the completion of certain events. For example, a READ call blocks until the buffer contains input data. When an I/O call is issued: if the socket is blocking, program processing is suspended until the event completes; if the socket is nonblocking, program processing continues.
  • If the queue has no pending connection requests, ACCEPT blocks the socket unless the socket is in nonblocking mode. The socket can be set to nonblocking by calling FCNTL or IOCTL.
  • When multiple socket calls are issued, a SELECT call can be issued prior to the ACCEPT to ensure that a connection request is pending. Using this technique ensures that subsequent ACCEPT calls do not block.
  • TCP⁄IP does not provide a function for screening clients. As a result, it is up to the application program to control which connection requests it accepts, but it can close a connection immediately after discovering the identity of the client.
The following requirements apply to this call:
Requirement Description
Authorization: Supervisor state or problem state, any PSW key
Dispatchable unit mode: Task
Cross memory mode: PASN = HASN
Amode: 31-bit or 24-bit
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 ACCEPT call instructions.

Figure 1. ACCEPT call instructions example
    WORKING-STORAGE SECTION.
       
        01  SOC-FUNCTION    PIC X(16)  VALUE IS 'ACCEPT'.
        01  S               PIC 9(4) BINARY.
    *                                                                 
    * IPv4 Socket Address Structure.                                  
    *                                                                 
        01  NAME.
            03  FAMILY      PIC 9(4) BINARY.
            03  PORT        PIC 9(4) BINARY.
            03  IP-ADDRESS  PIC 9(8) BINARY.
            03  RESERVED    PIC X(8).

    *                                                                 
    * IPv6 Socket Address Structure.                                  
    *                                                                 
        01  NAME.                                                    
            03  FAMILY      PIC 9(4) BINARY.                         
            03  PORT        PIC 9(4) BINARY.                         
            03  FLOW-INFO   PIC 9(8) BINARY.                         
            03  IP-ADDRESS.                                          
                05  FILLER  PIC 9(16) BINARY.                        
                05  FILLER  PIC 9(16) BINARY.                        
            03  SCOPE-ID    PIC 9(8) BINARY.                         
        01  ERRNO           PIC 9(8) BINARY.
        01  RETCODE         PIC S9(8) BINARY.
 
    PROCEDURE DIVISION.
         CALL 'EZASOKET' USING SOC-FUNCTION S NAME ERRNO RETCODE.

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

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014