The mfclient and mfserver modules pass information to each other via a parameter block described in the mfclisrv.cpy copyfile. The modules use the same parameter block to pass information to any user programs.
Your server program must include the copyfile, mfclisrv.cpy in the Linkage Section. You must also modify the Procedure Division header to include the parameter block, LNK-PARAM-BLOCK, which is used to pass parameters from mfserver.
This is shown below in the example server code:
LINKAGE SECTION.
01 INPUT-REC PIC X(32767).
COPY "MFCLISRV.CPY".*--- lnk-param-block is the record definition in mfclisrv.cpy
PROCEDURE DIVISION USING LNK-PARAM-BLOCK.
CONTROLLING SECTION.
*-----------------------------------------------------------*
* associate the user data area with the pointer in
* lnk-parm-block.
*-----------------------------------------------------------*
SET ADDRESS OF INPUT-AREA TO LNK-DBLOCK-PTR.
EVALUATE TRUE
WHEN START-CONNECTION
PERFORM PROGRAM-INITIALIZE
WHEN OTHER
PERFORM PROGRAM-BODY
END-EVALUATE.
EXIT PROGRAM.
PROGRAM-INITIALIZE SECTION.
*--- This code would include the initialization code
*--- for your server program eg. opening your application
*--- data files.
......
PROGRAM-BODY SECTION.
*--- This section would include your application
*--- processing code eg. read and writing of data
*--- files.
......
If you choose to handle error message displays yourself, you will need to add code similar to the following to your program's initial EVALUATE statement:
WHEN COMMS-ERROR
PERFORM SHOW-ERROR
......
SHOW-ERROR SECTION.
DISPLAY LNK-ERROR-LOC AT 2201
DISPLAY LNK-ERROR-MSG AT 2301 WITH SIZE LNK-ERROR-MSG-LEN.
EXIT.