サーバのプログラム

緑色の部分がコメントです。まずはコメントを手がかりに全体像を俯瞰して下さい。

/**
 *     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)>

     |--------------------------|--------------------------|

<サーバ用プログラム> <クライアント用プログラム> <時間割を定義するプログラム