H Y/ 1
H*---------------------------------------------------------------*
H* PROGRAM-ID : SOKRPGSD *
H* REMARKS : RPGソケットデーモン *
H* AUTHOR : Y.IDE *
H* DATE-WRITEN : 1999/03/27 *
H* VERSION : 01.00 ORIGINAL *
H*---------------------------------------------------------------*
FSOKSDFM CF E WORKSTN
C*
E TXT 1 3 70
C*
C MOVEATXT,1 FLD01
C EXFMTSC01
C *IN03 IFEQ '1'
C GOTO TAG#E
C ENDIF
C* ソケットオープン --------------------------------------*
C CALL 'SKOPEN'
C PARM SD 4
C PARM RC 1
C*
C RC IFEQ 'E'
C GOTO TAG#E
C ENDIF
C* ソケットバインド --------------------------------------*
C CALL 'SKBIND'
C PARM SD 4
C PARM RC 1
C PARM 'ANY' ANY 15
C PARM '30031' PORT 5
C*--------------------------------------------------------*
C* ANYもしくは、IPアドレスのどちらかを指定する
C* 以下はIPアドレス固定でバインドする例です。
C*--------------------------------------------------------*
C**** CALL 'SKBIND'
C**** PARM SD 4
C**** PARM RC 1
C**** PARM IP
C**** PARM '30031' PORT 5
C*
C RC IFEQ 'E'
C GOTO TAG#E
C ENDIF
C*
C MOVEATXT,2 FLD01
C WRITESC01
C 1 DO 3 X 20
C* ソケットリッスン --------------------------------------*
C CALL 'SKLISN'
C PARM SD 4
C PARM RC 1
C*
C RC IFEQ 'E'
C GOTO TAG#E
C ENDIF
C* ソケットアクセプト ------------------------------------*
C CALL 'SKACPT'
C PARM SD 4
C PARM RC 1
C PARM ND 4
C RC IFEQ 'E'
C GOTO TAG#E
C ENDIF
C*--------------------------------------------------------*
C* 接続先アドレス検索 ------------------------------------*
C CALL 'SKGETP'
C PARM ND 4
C PARM RC 1
C PARM CIP 15
C PARM CPORT 5
C RC IFEQ 'E'
C GOTO TAG#E
C ENDIF
C* ホスト名検索 ------------------------------------------*
C MOVELCIP HOSTNM
C CALL 'SKGETH'
C PARM HOSTNM128
C PARM RC 1
C PARM IPSTR 15
C PARM IPHOST128
C*
C MOVELIPHOST CHOSTN
C RC IFEQ 'E'
C MOVE *BLANK CHOSTN
C MOVEL'ERROR' CHOSTN
C ENDIF
C* 子プロセス生成 ----------------------------------------*
C CALL 'SKSPWN'
C PARM ND 4
C PARM RC 1
C PARM PID 4
C PARM 'SOKRPGSP'PGM 10
C PARM 'SOKRPG' LIB 10
C RC IFEQ 'E'
C GOTO TAG#E
C ENDIF
C*--------------------------------------------------------*
C*画面表示
C MOVEATXT,3 FLD01
C MOVELX FLD01
C WRITESC01
C*--------------------------------------------------------*
C ENDDO
C* ソケットクローズ --------------------------------------*
C TAG#E TAG
C CALL 'SKCLOS'
C PARM SD 4
C PARM RC 1
C*--------------------------------------------------------*
C SETON LR
C RETRN
** INIT TEXT
サーバープログラムを実行するには、実行キーを押す。
....クライアントプログラムの接続待機中....
00個の子プロセスを起動しました...