CALL "C$SOCKET" USING opCode                         parameters                 GIVING returnCode  | 
opCode   | Function to be executed. Valid values, defined in issocket.def, are:  | |
Creates a new server socket on specific port  | ||
Accepts connections  | ||
Creates a new client connecting to a server socket  | ||
Closes a socket  | ||
Writes data into socket  | ||
Read data from socket  | ||
Flush socket data  | ||
Empty socket  | ||
Returns the name of the pc hosting the socket  | ||
Returns the machine name associated to the socket  | ||
Returns the IP address associated to the socket  | ||
Returns machine name, IP and port associated to the socket  | ||
Returns the error-code of last operation  | ||
Returns the next readable socket  | ||
parameters  | Parameters depend on the opcode.  | |
       program-id. sockserver.        working-storage section.        copy "issocket.def".        78  data-len        value 1024.        77  sock-hnd-1      usage handle.        77  sock-hnd-2      usage handle.        77  client-data     pic x(data-len).        77  bytes-read      pic s9999.        77  sock-timeout    signed-int value -1.        77  sock-thread     pic 9(4).        procedure division chaining sock-thread.        main.            call "c$socket" using csocket-create-server, sock-thread                            giving sock-hnd-1.            if sock-hnd-1 = null               perform exit-program            end-if.            perform until client-data(1:9) = "sockclose"                call "c$socket" using csocket-next-read, sock-hnd-1,                                      sock-timeout giving sock-hnd-2                move sock-hnd-2 to return-code                if return-code = -1                    call "c$socket" using csocket-close, sock-hnd-1                    call "c$sleep" using 4                    go to main                end-if                if return-code = 0                    exit perform                 end-if                if sock-hnd-2 = sock-hnd-1                    call "c$socket" using csocket-accept, sock-hnd-1                    exit perform                end-if                call "c$socket" using csocket-read, sock-hnd-2,                                      client-data, data-len                                giving bytes-read                if bytes-read = data-len                    if client-data(1:9) not = "sockclose"                        perform process-request                    end-if                else                    if bytes-read = -1                        call "c$socket" using csocket-close, sock-hnd-2                    else                        move "01 Resend data" to client-data  | 
                       call "c$socket" using csocket-write, sock-hnd-2,                                        client-data, data-len                    end-if                end-if            end-perform.            perform exit-program.        exit-program.            goback.        process-request.             move "00 data ok" to client-data             call "c$socket" using csocket-write, sock-hnd-2,                                   client-data, data-len.  |