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


GIVESOCKET

z/OS Communications Server: IP Sockets Application Programming Interface Guide and Reference
SC27-3660-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 that have been given, but not taken for a period of four days, will be closed and will no longer be available for taking. If a select for the socket is outstanding, it will be posted.

The following requirements apply to this call:

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