H Y/ 1
H*---------------------------------------------------------------*
H* PROGRAM-ID : SOKRPGSVR *
H* REMARKS : TCPソケットプログラム SERVER *
H* AUTHOR : Y.IDE *
H* DATE-WRITEN : 1999/03/19 *
H* VERSION : 01.00 ORIGINAL *
H*---------------------------------------------------------------*
FSOKSVFM CF E WORKSTN
E IP 1 1 15
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 MOVE '0' DUMMY 1
C DUMMY IFEQ '1'
C CALL 'SKBIND'
C PARM SD 4
C PARM RC 1
C PARM IP
C PARM '30031' PORT 5
C ENDIF
C*--------------------------------------------------------*
C RC IFEQ 'E'
C GOTO TAG#E
C ENDIF
C MOVEATXT,2 FLD01
C WRITESC01
C* ソケットリッスン --------------------------------------*
C CALL 'SKLISN'
C PARM SD 4
C PARM RC 1
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 'SKCLOS'
C PARM SD 4
C PARM RC 1
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 MOVEATXT,3 FLD01
C*画面表示
C WRITESC01
C* ノンブロックの解除 ------------------------------------*
C CALL 'SKNBLK'
C PARM ND 4
C PARM RC 1
C PARM '0' FLG 1 1=ON 0=OFF
C RC IFEQ 'E'
C GOTO TAG#E
C ENDIF
C TAG#01 TAG
C* ソケットデータ受信 ------------------------------------*
C CALL 'SKREAD'
C PARM ND 4
C PARM RC 1
C PARM '256' BUFLEN 4
C PARM BUFIN 256
C*--------------------------------------------------------*
C RC IFEQ 'E'
C BUFLEN OREQ '0 '
C GOTO TAG#E
C ENDIF
C* 画面表示 -----------------------------------*
C MOVELBUFIN FLD01
C MOVELBUFIN ENDSW 4
C ENDSW IFEQ 'EXIT'
C GOTO TAG#E
C ENDIF
C WRITESC01
C MOVELBUFIN BUFOUT
C* ソケットデータ送信(もらったデータの折り返し) --------*
C CALL 'SKSEND'
C PARM ND 4
C PARM RC 1
C PARM '256' BUFLEN 4
C PARM BUFOUT256
C*--------------------------------------------------------*
C RC IFEQ 'E'
C GOTO TAG#E
C ENDIF
C GOTO TAG#01
C* ソケットクローズ --------------------------------------*
C TAG#E TAG
C CALL 'SKCLOS'
C PARM ND 4
C PARM RC 1
C*--------------------------------------------------------*
C SETON LR
C RETRN
** SV SERVER IP ADDRESS
127.0.0.1
** INIT TEXT
サーバープログラムを実行するには、実行キーを押す。
....クライアントプログラムの接続待機中....
...クライアントプログラムと接続しました...