lecture:apro:2016:ex2

応用プログラミング ex2 演習課題

  • 次の URL で示される html ファイルの内容を、http プロトコル(80番ポート)の GET コマンドを使ってターミナルに表示しなさい。GET コマンドのバージョン表記は HTTP/1.0 とします。
http://www.math.ryukoku.ac.jp/index.shtml
  • %表示結果とその手順を TA に説明しなさい。%
  • 上記 URL から取得される html データは日本語文字コードが Shift-JIS であるため、端末に表示される日本語文字コードが文字化けします。端末メニューの「端末」⇒「文字コードの設定」から適切な文字コードを選択すると、日本語文字がきちんと表示されます。
  • www.math.ryukoku.ac.jp が(接続の時間制限で)すぐに切断されてしまう場合は、以下の URL を用いても構いません。
http://www-slab.math.ryukoku.ac.jp/index.php
  • smtp プロトコル(25番ポート)を使って次のメイルアドレス宛にメイルを送信しなさい。
apro@raphael.math.ryukoku.ac.jp
  • smtp サーバには、topaz.ryukoku.ac.jp を利用しなさい。

//–smtp サーバには、opal.mail.ryukoku.ac.jp を利用しなさい。

  • MAIL FROM: には、自分の *@mail.ryukoku.ac.jp のメイルアドレスを利用しなさい。
  • メイルのヘッダ情報として、以下の各行を送信すること。
  • メイルボディの内容はなんでも(カラでも)構いません。
  • 送信されたメイル情報は以下のWebページに表示されます。
    http://www-slab.math.ryukoku.ac.jp/apro/apro-smtp.shtml
  • 指示通りにメイルが送付されていれば、タイトル行(一行目)が青く表示されます。
  • 間違った送付がされていれば、タイトル行と該当ヘッダ部分が赤く表示されます。
  • %TAの前で実際に送信を行い、上記の確認ページに自分の情報が表示されることをTAに示しなさい。%
  • smtp プロトコル(25番ポート)を使って自分のメイルアドレス(携帯電話など受信を確認できるもの)宛にメイルを送信しなさい。
  • メイルのヘッダ情報を自由に加工して(たとえば、送信元 From: や送信先 To: を偽装して)、受信側で送信元・送信先アドレスがどのように表示されるのかを確認しなさい。
  • コマンドライン引数に与えられた文字列をそのまま表示する myecho というプログラムを作成しなさい。
  • 以下に実行結果の例を示す。
[sano@s1542f160 ~]$ ./myecho
[sano@s1542f160 ~]$ ./myecho ABC
ABC
[sano@s1542f160 ~]$ ./myecho ABC DEF 123 999
ABC DEF 123 999
[sano@s1542f160 ~]$ ./myecho a b c d e f g h i j k l m n o p q r s t u v w x y z
a b c d e f g h i j k l m n o p q r s t u v w x y z
[sano@s1542f160 ~]$
  • %TA に myecho プログラムの内容を説明し、実行結果を示しなさい。%
  • コマンドライン引数に与えられた数値文字列を、全て足し合わせその結果を表示する add というプログラムを作成しなさい。
    • C言語の標準ライブラリ <stdlib.h> に定義されている文字列を実数値(double)に変換する関数 double atof(const char*) を利用しなさい。atof() は次のような返り値を持つ。
atof("12") =>        12.000000   // 数値文字列は実数値に変換
atof("+0.3") =>       0.300000   // プラス記号は正値に
atof("-0.04") =>     -0.040000   // マイナス記号は負値に
atof("abc0.5") =>     0.000000   // 変換できなければ 0.0
atof("0.67+0.89") =>  0.670000   // 計算してくれる訳ではない
atof("0.12ab") =>     0.120000   // 先頭の数値文字列を変換
atof("1e-2") =>       0.010000   // 指数表記も変換してくれる
atof("0x10") =>      16.000000   // 16進表記なんかも
  • 以下に実行結果の例を示す。
[sano@s1542f160 ~]$ ./add
0.000000
[sano@s1542f160 ~]$ ./add 12 0.3 -0.04 0.56+0.78 edf9 1e-2 0x10
28.830000
[sano@s1542f160 ~]$ ./add ABC DEF 1.23 9.99 -8.88
2.340000
[sano@s1542f160 ~]$
  • %TA に add プログラムの内容を説明し、実行結果を示しなさい。%
  • lecture/apro/2016/ex2.txt
  • 最終更新: 2019/09/23 13:50
  • by sano