緑色の部分がコメントです。まずはコメントを手がかりに全体像を俯瞰して下さい。
/**
* 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)> |--------------------------|--------------------------| <サーバ用プログラム> <クライアント用プログラム> <時間割を定義するプログラム>