ozzy:~taka/cc/TCP の下にクライアント・サーバ・モデルのプログラムを作りました。 solaris 上でなら、make すれば利用できます。 使用するポートはデフォルトでは 3333 です。
現在 ozzy の /usr/local/bin にインストールされていますので、 PATH を設定すれば利用可能です。
サーバは ozzy を仮定していますが、変更したいときは、 以下の環境変数を設定してください。
| 環境変数 | 意 味 | デフォルト |
|---|---|---|
| TEST_PORT | 使用するポート番号 | 3333 |
| TEST_HOST | 使用するサーバ名 | ozzy |
>make
| ソース | 説 明 |
|---|---|
| tcp.h | 定義部と get_env() があります |
| srv.c | サーバ・プログラムです。 クライアントからくる文字列をクライアントにかえす。 文字列がコマンドに対応すると、該当する動作をする。 |
| cli.c | クライアント・プログラムです。 起動した画面で文字列を入力し Return すると、それをサーバに送り、 返ってきた文字列を表示します。 文字列がコマンドに対応すると、該当する動作をする。 |
| netgrep | srv から実行するシェルスクリプトで、状態を表示します |
| makefile | makefile です。 |
srv 起動側からは "netgrep" でネットワークとプロセスの状況を見れます。
| コマンド | 機 能 | サーバ netstat -an|grep PORT |
クライアント |
|---|---|---|---|
| C_Quit | クライアントを終了する | LISTEN (正常) | 正常終了 |
| DS_C_Quit | 専用サーバとクライアントを終了する | TIME_WAIT ->LISTEN (正常) | 正常終了 |
| CQ_DSW | クライアントを終了し、専用サーバは WAIT 後、終了する | CLOSE_WAIT -> LISTEN | 正常終了 |
| DS_Quit | 専用サーバを終了する | FIN_WAIT_2 -> LISTEN | broken pipe 異常終了 |
| DS_CW | 専用サーバは WAIT 後(30秒)、終了する | FIN_WAIT_2 -> LISTEN | broken pipe 異常終了 |
| C_Close | クライアントは socket をクローズする | LISTEN (正常) | Bad file number 異常終了 |