・   「Java言語」実習 第10回

ネットワークの利用

java.netパッケージの機能を用いて、 インターネット上の情報やデータの取得、 TCP/IPによる通信プログラムなどのサンプルを紹介します。


・ 準備(学内向け):
各自のJavaの課題の作業用のディレクトリ ~/java に移動しなさいなさい。 その中で以下の作業を行いなさい。


・ 基本課題1:「自分のマシンの情報を調べる」

  1. ソースファイル MyHost.java (教科書 P.194-195)を作成しなさい。
  2. コンパイルできたら、実行し結果を確認しなさい。

・ 基本課題2:「インターネット上のマシンの情報を調べる」

  1. ソースファイル HostInfo.java (教科書 P.195-196)を作成しなさい。
  2. コンパイルできたら、たとえば次のようにして実行し、結果を確認しなさい。
    
    java  HostInfo  rishiri
    java  HostInfo  www.wakhok.ac.jp
    java  HostInfo  java.sun.com
    java  HostInfo  202.11.100.4
    java  HostInfo  198.137.240.91
    
    

・ 基本課題3:「URLで指定した資源の取得(テキスト)」

  1. ソースファイル URLTextContent.java (教科書 P.197)を作成しなさい。
  2. コンパイルできたら、たとえば次のようにして実行し、結果を確認しなさい。
    
    java  URLTextContent  file:/etc/hosts
    java  URLTextContent  http://www.wakhok.ac.jp/
    
    

・ 基本課題4:「URLで指定した資源の取得(画像)」

  1. ソースファイル URLImageContent.java (教科書 P.198-199)と ImageViewer.java (教科書 P.199-200)を作成しなさい。
  2. コンパイルできたら、たとえば次のようにして実行し、結果を確認しなさい。
    
    java  URLImageContent  http://www.wakhok.ac.jp/hokusei.gif
    
    

・ 基本課題5:「TCP/IPによる通信(サーバ側)」

  1. ソースファイル MessageServer.java (教科書 P.204-205)を作成しなさい。 ただし通信するメッセージの内容は、 必ず各自で工夫したものに変更すること。
  2. コンパイルできたら実行し、クライアントからの通信を待ちなさい。 (この実習時間中は起動したままにしておくこと。)

・ 基本課題6:「TCP/IPによる通信(クライアント側)」

  1. ソースファイル MessageClient.java (教科書 P.203)を作成しなさい。
  2. コンパイルできたら、たとえば次のようにして自分のサーバに 接続できることを確認しなさい(引数に与えるマシン名は自分の座席のものを 指定すること。) それが確認できたら、次に他のマシンで走っている MessageServer に接続できる かも試してみなさい。
    
    java  MessageClient  pc4fg6
    java  MessageClient  pc4fa3
    java  MessageClient  pc4fc1
              :
              :
    
    

・ 今週のレポート課題(学内用):
ここまでの課題が終わった人は、下記の項目を tatsuo宛のメール で報告しなさい。(Subjectは java10)

  1. 課題2:のプログラム(HostInfo)を使って、 www.kantei.go.jp(首相官邸のWWWサーバ)の IPアドレスを調べなさい。 また、198.137.240.91はどこのマシンのアドレスでしたか?
  2. 課題6:の通信プログラム(MessageClient)で、 他の人が起動した 3個の異なるマシン上の MessageServerから メッセージを受け取りなさい。 それぞれのマシン名とサーバから転送されてきたメッセージの内容を報告すること。

・ 応用課題1:「UDPによる通信」

  1. ソースファイル PacketSender.java (教科書 P.208-209)と PacketReceiver.java (教科書 P.209-210)を作成しなさい。
  2. 各プログラムをコンパイルしなさい。
  3. TCP/IPの場合と同じように2個のウィンドウを開き、 PacketReceiver と PacketSenderの通信を試してみなさい。
  4. 他の人とペアを作って、互いのマシン間でパケットを送る実験を してみなさい。

実習の目次   今週の講義の内容