RPG ソケットバッチメインプログラム

Return

[例]

     H            Y/                                    1
     H*---------------------------------------------------------------*
     H* PROGRAM-ID    :    SOKRPGBCHD                                 *
     H* REMARKS       :    RPG ソケットバッチメインプログラム         *
     H* AUTHOR        :    Y.IDE                                      *
     H* DATE-WRITEN   :    1999/10/05                                 *
     H* VERSION       :    01.00 ORIGINAL                             *
     H*---------------------------------------------------------------*
     E                    MSG     1   2 80
     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           RC        IFEQ 'E'
     C                     GOTO TAG#E
     C                     ENDIF
     C*ソケットリッスン--------------------------------------*
     C                     CALL 'SKLISN'
     C                     PARM           SD      4
     C                     PARM           RC      1
     C           RC        IFEQ 'E'
     C                     GOTO TAG#E
     C                     ENDIF
     C*ソケットアクセプト------------------------------------*
     C           1         DO   *HIVAL
     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*他のJOBにソケットをあたえる------------------------*
     C                     CALL 'SKGIVE'
     C                     PARM           ND      4
     C                     PARM           RC      1
     C                     PARM 'SOKBCH  'APLID   8
     C*
     C           RC        IFEQ 'E'
     C                     GOTO TAG#E
     C                     ENDIF
     C*
     C           RC        IFEQ 'N'
     C                     CALL 'SKMSGS'
     C                     PARM           MSG,1
     C                     CALL 'SKCLOS'
     C                     PARM           ND      4
     C                     PARM           RC      1
     C                     LEAVE
     C                     ENDIF
     C*
     C                     CALL 'SKMSGS'
     C                     PARM           MSG,2
     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
**
クライアントの要求を他のJOBにディスパッチできません。クローズします。
クライアントの要求を他のJOBにディスパッチしました。

【解説】

クライアントからの接続をまち、実際の接続後は、ソケットディスクリプターを他のJOBに渡し、 データの送受信は他のJOBにまかせ、自分は、次のクライアントからの接続をまつ、SKTAKEで待機している JOBがいないとプログラム終了します。

【実行結果】

クライアントから接続がくるごとに、「クライアントの要求を他のJOBにディスパッチしました。」という メッセージが、画面下部と JOBLOG に出力されます。

終了させるには、クライアント接続して「END」の文字を送り、まず常駐しているすべての SOKRPGBCHP ジョブを 終了させます。
その状態で接続すると、「クライアントの要求を他のJOBにディスパッチできません。クローズします。」 というメッセージを表示して、当プログラムは終了します。


[Return]