| 前へ << POP3 クライアントを作ってみよう(3) | echo サーバを作ってみよう (2) >> 次へ |
何度も同じことを書いていますが、さらにしつこく言います。サーバとは特定のポートを見張っているプログラムのことです。 クライアントが connect してくるまでは、仕事はポートを見張ることしかありません (別に何か仕事をしていてもいいのですが)。クライアントが connect してきたら、プロトコルに従ってお話して、クライアントが望むサービスを 提供します (もちろん変な要求をしてきたらそれに応じてはいけません)。
ここでは簡単なサーバを作ってみましょう。
ではどんな役割のサーバを作るかですが、まずは最も簡単そうな 「クライアントが送ってきた文字列をそのまま返すサーバ」にしましょう。 実はこういう役割のプロトコルは既に存在します。/etc/services にecho 7/tcpとあるようにポート番号は7です。FreeBSD の場合、echod というサーバは 存在せず、inetd の内部に echo サーバが組み込まれています。デフォルトの /etc/inetd.conf は#echo stream tcp nowait root internalとコメントアウトされており、echo ポート(ポート番号7)にアクセスしても inetd は反応してくれません。そこで root になって、echo stream tcp nowait root internalと先頭の「#」をはずして、# killall -HUP inetdとして inetd の再起動をしてください。では telnet で確かめてみましょう。% telnet localhost echo Trying 127.0.0.1... flushoutput character is 'off'. Connected to localhost. Escape character is '^]'. hoge hoge fuga fuga ^](Ctrlを押しながら ]) telnet> quit Connection closed.タイプした文字がそのまま返されますね。 これが echo プロトコルの仕組みです。 これと同じ働きをするサーバを作ってみましょう。
| 前へ << POP3 クライアントを作ってみよう(3) | echo サーバを作ってみよう (2) >> 次へ |