サーバーRPG | クライアントRPG | |
1.SKOPENSKOPENプログラムによりソケットをオープンします。SKOPENでは、setsocketオプションで、 TCP_NODELAY,SO_REUSEADDRをセットしています。 |
1.SKOPENSKOPENプログラムによりソケットをオープンします。SKOPENでは、setsocketオプションで、 TCP_NODELAY,SO_REUSEADDRをセットしています。 |
|
2.SKBINDSKBINDプログラムによりソケットにIPアドレス/ポート番号を割り当てます。 SKBINDでは、明示的なIP割り当ての代わりにANYとしてどのインターフェースからの 接続要求についても受けとれります。 |
||
3.SKLISNSKLISNプログラムにより、クライアントからの接続要求を待ちます。 |
||
4.SKCONNSKCONNプログラムにより、サーバーに接続を行います。IPアドレスは、 構内ループバックアドレス(127.0.0.1)を指定しているので、サーバーと同じマシン上で クライアントも実行すると仮定しています。 |
||
5.SKACPTSKACPTプログラムにより、クライアントからの接続要求を受け入れます。この際に、新しいソケットディスクリプターがシステムにより与えられます。これ以降の通信は ここで割り当てられた新しいディスクリプターを使用します。 |
6.SKGIVESKGIVEプログラムにより、常駐している BATCH ジョブにソケットデイスクリプターを渡します。SKACPTへ戻る |
|
常駐バッチプログラム |
||
7.SKTAKESKTAKE プログラムにより、ソケットデイスクリプターを取得します。 | ||
8.SKRECVSKRECVプログラムにより、クライアントから送信された文字列を受信します |
8.SKSENDSKSENDプログラムにより、画面から入力された文字列を送信します。 |
|
9.SKSENDSKSENDプログラムにより、8.でクライアントから受信した文字列をそのまま送信します。(エコー処理) |
9.SKRECVSKRECVプログラムにより、サーバーから送信された文字列を受信し、画面表示します。(エコー処理) |
|
10.SKCLOS文字列[EXIT]が送られてきた場合は、SKCLOSプログラムにより、ソケットのクローズを行います。SKTAKEへ戻る 文字列[END]が送られてきた場合は、プログラム終了します。 |
10.SKCLOS画面からF3が押されるか、サーバープログラムが終了した場合は、SKCLOSプログラムにより、ソケットのクローズを行います。 |