lecture:apro:2016:ex1

Action unknown: copypageplugin__copy

setup コマンドを実行してください。

[sano@s1542f160 ~]$ /roes/sample/sano/apro/setup

実行後、デスクトップ上に演習ページと画面共有実行のためのアイコンが作成され、演習用ディレクトリ ~/apro2016 が作成されます。

  • 以下のコマンドを使って、自分が利用している計算機のネットワーク環境を調べなさい。
  • コマンドが実行できない場合は、whereis コマンドを使ってコマンドのパスを調べ、フルパスで実行しなさい。

1-1.ifconfig

  1. ifconfig コマンドを使って、自分の計算機のIPアドレスネットワークマスクの値を調べなさい。

1-2.hostname

  1. hostname コマンドを使って、自分の計算機のドメイン名のホスト部を調べなさい。
  2. hostname コマンドを使って、自分の計算機のIPアドレスを調べなさい。

1-3.host

  1. host コマンドを使って、自分の計算機のIPアドレスから(DNSに登録されている)ドメイン名を調べなさい。
  2. host コマンドを使って、133.83.80.11 のIPアドレスをもつ計算機の(DNSに登録されている)ドメイン名を調べなさい。

2-1. 実行ファイルの作成

  1. ディレクトリ ~/apro2016/sample より以下の4つのソースファイルを ~/apro2016 にコピーしなさい。
    • echoServer.c
    • echoClient.c
    • dieWithError.c
    • handleTCPClient.c
  2. これらをコンパイル&リンクして echoServerechoClient という名前の2つの実行ファイルを作成しなさい。
    • 実行ファイル echoServerechoClient を作成するためには、それぞれ複数のソースファイルが必要です。各ソースファイルに書かれている関数とプロトタイプ宣言に注目し、実行ファイル作成に必要な作業を各自で考えてください。
    • echoServer 用の main() 関数は echoServer.c に書かれています。
    • echoClient 用の main() 関数は echoClient.c に書かれています。
  • 作成された実行ファイルがうまく作成されれば、実行結果は次のようになります。
[sano@s1542f160 ~]$ ./echoClient 
Usage: ./echoClient <Server IP> <Echo String> [<Echo Port>]
[sano@s1542f160 ~]$ ./echoServer 
Usage: ./echoServer <Server Port>
[sano@s1542f160 ~]$

2-2. 同じ計算機内で(自分自身と)の通信 <color white,red/white>[TA]</color>

  • echoServer の起動
    1. ターミナル(シェル)を起動します。
    2. ターミナル上で、次のように echoServer を起動します。
      [sano@s1542f160 ~]$ ./echoServer 5007
  • echoClient からの通信
    1. echoServer を実行したものとは別のターミナル(シェル)を新たに起動します。
    2. host コマンドや hostname コマンドなどで自分の計算機のIPアドレスを調べなさい。
    3. 調べたIPアドレスを使って、ターミナルから次のように echoClient を実行します。
      [sano@s1542f160 ~]$ ./echoClient 自分のIPアドレス HelloEchoServer 5007
      Handling client <自分のIPアドレス>
      Received: HelloEchoServer
    4. echoServer とうまく通信できたら、上記のように入力文字列がそのまま返ってきます。%TAの前で上記を実演しながら通信の様子をTAに説明してしてください。%
  • 以上ができたら、異なる2つの計算機(たとえば自分のPCと友人のPC)でそれぞれ echoServer と echoClient を動かし、異なる計算機間でもネットワーク通信ができることを確認してみよう。

2-3. 外部サーバとの通信 <color white,red/white>[TA]</color>

  1. host コマンドを使って、raphael.math.ryukoku.ac.jp というドメイン名をもつ計算機のIPアドレスを調べなさい。
  2. 調べたIPアドレスを使って、echoClient から raphael.math.ryukoku.ac.jp で実行されている echoServer と通信しなさい。echoClient の最後の引数に与える数値として、75007 の2つの数値を使ってそれぞれ通信しなさい。
  3. 同じ実行ファイル echoClient を使い、同じ計算機 raphael.math.ryukoku.ac.jp と通信したにもかかわらず、最後の3番目の引数の値(7、および 5007)によって異なるメッセージが返ってくることを確認しなさい。
  4. %通信するサーバ計算機 raphael.math.ryukoku.ac.jp が同じであるにも係わらず、この3番目の引数の数値によって異なるメッセージが返ってくる理由をTAに説明しなさい。%
  • lecture/apro/2016/ex1.txt
  • 最終更新: 2019/09/23 13:50
  • by sano