「ネットワークはなぜ・・・」で質問

戸根様
掲示板をごらんの皆様

「ネットワークはなぜつながるのか」を
読ませていただきました。

情報処理の試験でネットワークを勉強しても、
いまいちシックリこなかった時にこの本に
出会いました。多少難しいところはありましたが、
この本の前書きにある、各技術の連携を見たことで
ネットワークの全体観がつかめた気がします。

1点質問なのですが、P41に、サーバープログラムの名前
と、中の動きが書いてあり、P40には、アプリケーション
プログラムが書いてあります。

アプリケーションプログラムを呼び出すのは、ネットワークに
接続するクライアント側アプリケーションソフトだと想像できる
のですが、サーバー側のサーバープログラムは、いつのタイミングで
呼び出されて動くのでしょうか?

お分かりの方がいらっしゃいましたら教えてください。
よろしくお願いいたします。

名前: 
fuku
日時: 
05/06/30 15:00

コメント

fukuさん,こんばんわ。
返事遅くなってごめんなさい。

>「ネットワークはなぜつながるのか」を読ませていただきました。

ありがとうございます。

>アプリケーションプログラムを呼び出すのは、ネットワークに
>接続するクライアント側アプリケーションソフトだと想像できる
>のですが、

アプリケーションプログラムがアプリケーションソフトそのものです。
実際のアプリケーションはもっと複雑ですけれど,
通信部分のエッセンスを取り出すとこんな感じになります。

>サーバー側のサーバープログラムは、いつのタイミングで呼び出されて動くのでしょうか?

サーバ側のプログラムは,通常,サーバマシンを起動したときに
呼び出されて動きはじめます。
そして,クライアントがアクセスしてくるのを待つわけです。
第6章にもサーバ側の説明がありますから,
そちらも読んでみてください。

戸根様

ご回答をくださいましてありがとうございました。
本書に書かれているサーバ側のプログラム、というのは、
何かの関数のように考えていましたが、Webサーバーアプリケーション
そのもののようですね。本の中では、説明箇所のみを抜き書きしている
のでしょうか。

>サーバ側のプログラムは,通常,サーバマシンを起動したときに
>呼び出されて動きはじめます。
>そして,クライアントがアクセスしてくるのを待つわけです。

上の説明を受けまして、サーバ側のプログラムのつくりに
対して、このような段階があるのではないか、というイメージを
以下に示しました。違っている部分がありましたらご指摘願います。

1、
クライアントからの通信開始準備をして、クライアントからの
通信を待ちつづける段階(accept関数のところではないかと思っています。
イメージとしては、自分の中では、Windowsプログラミング
でいうメッセージループのようなものを想像しています。)

2、
待ち状態から、クライアントより依頼が来ると通信を
行い(read、write)、切断をし、ふたたびacceptを
呼んで待ち状態に入る部分、この動きをループしている段階

長くなりましてごめんなさい。
ご回答をいただければ幸いです。

追伸:
FAQモノの質問を繰り返さないためにも、掲示板の過去ログのような
ものがあると助かるように思います。ご検討いただけますでしょうか。
(すでにどこかにある???)

このイメージでいいと思います。
ただ,サーバは同時に多数のクライアントからのアクセス動作を受け付けるので,
そのための工夫がなされています。
具体的には,クライアントが接続してきたら,
そのクライアントと応対するプロセスやスレッドを起こし,
そのプロセスやスレッドで2の部分を実行するということです。
307ページ近辺にその説明があります。

それから,この辺の作り方は典型的な例を示しているに過ぎません。
ネットワークのルールではアプリケーションの作り方まで規定していませんから,
これとは違う格好のアプリケーションもあるかもしれません。

>FAQモノの質問を繰り返さないためにも、掲示板の過去ログのような
>ものがあると助かるように思います。

画面の右上を見てもらうとわかりますが,
実は,FAQのページだけは用意してあります。
でも,この掲示板を読んでもらえばわかりますが,
似たような質問が繰り返されることってほとんどないんです。
皆さん,ちゃんと過去の質問をチェックしてくれているのかしら。
ということで,FAQについてはあまり気にする必要はない状態です。
気づいたことがあったら,気楽に書き込んでください。

>307ページ近辺にその説明があります。
308ページの図6.4がわかりやすいです。
いろいろありがとうございました。