応用プログラミング ex2 演習課題
1.telnet
1-1.telnet で HTTP GET <color white,red/white>[TA]</color>
- 次の 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
1-2.telnet で SMTP MAIL <color white,red/white>[TA]</color>
- 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 のメイルアドレスを利用しなさい。
- メイルのヘッダ情報として、以下の各行を送信すること。
- From: apro@ryukoku.ac.jp
- To: apro@ryukoku.org
- Subject: apro ex2
- メイルボディの内容はなんでも(カラでも)構いません。
- 送信されたメイル情報は以下のWebページに表示されます。
http://www-slab.math.ryukoku.ac.jp/apro/apro-smtp.shtml - 指示通りにメイルが送付されていれば、タイトル行(一行目)が青く表示されます。
- 間違った送付がされていれば、タイトル行と該当ヘッダ部分が赤く表示されます。
%TAの前で実際に送信を行い、上記の確認ページに自分の情報が表示されることをTAに示しなさい。%
1-3.telnet で SMTP MAIL to you
- smtp プロトコル(25番ポート)を使って自分のメイルアドレス(携帯電話など受信を確認できるもの)宛にメイルを送信しなさい。
- メイルのヘッダ情報を自由に加工して(たとえば、送信元 From: や送信先 To: を偽装して)、受信側で送信元・送信先アドレスがどのように表示されるのかを確認しなさい。
2.コマンドライン引数
2-1.コマンドライン引数を使った echo プログラム <color white,red/white>[TA]</color>
- コマンドライン引数に与えられた文字列をそのまま表示する 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 プログラムの内容を説明し、実行結果を示しなさい。%
2-2.コマンドライン引数を使った足し算プログラム <color white,red/white>[TA]</color>
- コマンドライン引数に与えられた数値文字列を、全て足し合わせその結果を表示する 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 プログラムの内容を説明し、実行結果を示しなさい。%