緑色の部分がコメントです。まずはコメントを手がかりに全体像を俯瞰して下さい。
/** * MainServer.java * クライアントから送信された曜日、時限の情報から「授業の情報」を特定し、 * その結果を送り返すサーバ **/ import java.io.*; // 入出力関連パッケージを利用する import java.net.*; // ユーティリティパッケージを利用する import java.util.*; //ネットワーク関連のパッケージを利用する public class MainServer{ /** * 接続要求のあったクライアントに対して接続をおこない、 * クライアントから送られてくる曜日・時限の情報を受信し、 * それに該当する「授業の情報」を選択し、クライアントに送信する **/ public static void main(String args[]){ try{ /* ポート番号を指定し、クライアントとの接続準備を行う */ ServerSocket server = new ServerSocket(8000); /* クライアントからの接続要求を待ち、 要求があればソケットを取得し接続をおこなう*/ Socket socket = server.accept(); /* 時間割の登録されたデータファイルの読み込みをおこなう */ FileInputStream fis = new FileInputStream("Week.data"); ObjectInputStream ois1 = new ObjectInputStream(fis); Vector week = (Vector)ois1.readObject(); /* 曜日・時限の情報を受信する */ ObjectInputStream ois2 = new ObjectInputStream(socket.getInputStream()); Integer data1 = (Integer)ois2.readObject(); Integer data2 = (Integer)ois2.readObject(); int dayOfWeek = data1.intValue(); int number = data2.intValue(); /* 受信した曜日・時限に該当する「授業の情報」を特定する */ Vector day = (Vector)week.elementAt(dayOfWeek-1); ClassTable ct = (ClassTable)day.elementAt(number-1); /* 「授業の情報」を送信する */ ObjectOutputStream oos = new ObjectOutputStream(socket.getOutputStream()); oos.writeObject(ct); oos.flush(); oos.close(); }// エラーが起こったらエラーメッセージを表示する catch(Exception e){ System.out.println("エラーが発生したのでプログラムを終了します");} } } |
リンク: <講座1・その2(4)> |--------------------------|--------------------------| <サーバ用プログラム> <クライアント用プログラム> <時間割を定義するプログラム>