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


GIVESOCKET call

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

The GIVESOCKET call is used to pass a socket from one process to another.

UNIX-based platforms use a command called FORK to create a new child process that has the same descriptors as the parent process. You can use this new child process in the same way that you used the parent process.

TCP⁄IP normally uses GETCLIENTID, GIVESOCKET, and TAKESOCKET calls in the following sequence:

  1. A process issues a GETCLIENTID call to get the job name of its region and its MVS™ subtask identifier. This information is used in a GIVESOCKET call.
  2. The process issues a GIVESOCKET call to prepare a socket for use by a child process.
  3. The child process issues a TAKESOCKET call to get the socket. The socket now belongs to the child process, and can be used by TCP⁄IP to communicate with another process.
    Note: The TAKESOCKET call returns a new socket descriptor in RETCODE. The child process must use this new socket descriptor for all calls that use this socket. The socket descriptor that was passed to the TAKESOCKET call must not be used.
  4. After issuing the GIVESOCKET command, the parent process issues a SELECT command that waits for the child to get the socket.
  5. When the child gets the socket, the parent receives an exception condition that releases the SELECT command.
  6. The parent process closes the socket.

The original socket descriptor can now be reused by the parent.

Sockets which have been given, but not taken for a period of four days, are closed and are no longer be available for taking. If a select for the socket is outstanding, it is posted.

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 GIVESOCKET call instructions.

Figure 1. GIVESOCKET call instruction example
    WORKING-STORAGE SECTION.
        01  SOC-FUNCTION    PIC X(16)  VALUE IS 'GIVESOCKET'.
        01  S               PIC 9(4) BINARY.
        01  CLIENT.
            03  DOMAIN      PIC 9(8) BINARY.
            03  NAME        PIC X(8).
            03  TASK        PIC X(8).
            03  RESERVED    PIC X(20).
        01  ERRNO           PIC 9(8) BINARY.
        01  RETCODE         PIC S9(8) BINARY.
 
    PROCEDURE DIVISION.
         CALL 'EZASOKET' USING SOC-FUNCTION S CLIENT 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