課題2:HTTPクライアントの作成

サンプルのクライアントプログラムを参考にして,次の仕様を満たすクライアン トを作成せよ.作成したクライアントでhttp://www.fos.kuis.kyoto-u.ac.jp/le2soft/を指定し,実験ホームペー ジのソースが取得できることを確認せよ.

クライアントの動作
クライアントの動作の概要は以下のとおりである.
  1. (サンプルプログラムとは異なり,)引数をとらずに起動.
  2. 標準入力からURLを受け取り,ホスト名,ポート番号,パスを取得 する(課題1で作成した解析器を利用).
  3. 得られた情報をもとにサーバにTCPで接続し,上記プロトコルに従っ てコンテンツの転送要求 (Request) を送信する.
  4. サーバから送信された結果を画面に表示する.message-bodyのみで はなく,サーバから送られるResponse全てを表示すればよい.この とき,一行受信するごとに表示を行なうこと.
  5. 2.に戻る.

実行例
以下は実行の一例である.
   % ./client
   Input URL:
   http://www.fos.kuis.kyoto-u.ac.jp/le2soft/ (←端末からの入力)

   (サーバから受信した内容をそのまま表示)
   HTTP/1.1 200 OK
   Content-Type: text/html; charset=iso-2022-jp
   <html>
   ...
プログラムの内部では,入力されたURLを解析した後, www.fos.kuis.kyoto-u.ac.jpの80番ポートにTCP接続し, 以下のリクエストをサーバに向けて送信している.
   GET /le2soft/ HTTP/1.1 (CRLF)
   Host: www.fos.kuis.kyoto-u.ac.jp (CRLF)
   (CRLF)
このリクエストは端末には表示しない

NAKAZAWA Koji
2014-09-30