課題3


■課題3:inetdを使用しないサーバプログラムの作成 サンプルプログラム(1)のサーバプログラム(server.c)はinetdから起動するものであるが、inetdを使用せずに同じ動作をするデーモン型のサーバプログラムを作成し、実行結果を示すとともに、inetdを使用するサーバプログラムとそうでないものとの実装上の違いを説明せよ。

プログラムソース
client.c
server.c

実行結果
[nw0514:~/inetd] j05014% ./client
Connected.
Input Keyword = warning: this program uses gets(), which is unsafe.
yama
Keyword = [yama] / Data = [kawa]

Input Keyword = xyz
Keyword = [xyz] / Data = [XYZ]

Input Keyword = 123
Keyword = [123] / Data = [456]

Input Keyword = xxxx
Keyword = [xxxx] / Data = [yyyy]

Input Keyword = shiro
Keyword = [shiro] / Data = [kuro]

・実装上の違い inetd使用のサーバプログラムは、クライアントの要求があるごとにサーバを起動する。 しかしデーモン型のサーバプログラムにはソケットを用意してあり、常にクライアントと接続出来るようになっているのでinetd使用時と比べて通信がスムーズになる。ただし常にサーバを起動しているので負担が大きくなってしまう。