第8講・その2(3) 解答例のプログラム(サーバ)

/*
  * SampleServer.java
  * クライアントから送信された年齢を元に飲酒の可否を判定し、
  * その結果を送り返すサーバー
*/

import java.io.*;	// 入出力関連パッケージを利用する
import java.util.*;	// ユーティリティパッケージを利用する
import java.net.*;	//ネットワーク関連のパッケージを利用する

public class SampleServer{

	/*メイン・メソッド
	 * 接続要求のあったクライアントに対して接続を行い
	 * クライアントから送られる年齢を受信し、その年齢を元に
	 * 飲酒の可否を判定した結果をクライアントに対して送信する
	 */
	public static void main(String arg[]){
		try{
			/* 通信の準備をする */
			ServerSocket server =
				new ServerSocket(8000);		//ポート番号を指定し、クライアントとの接続の準備を行う
			Socket socket = server.accept();	//クライアントからの接続要求を待ち、
						 		// 要求があればソケットを取得し接続を行う 		
	 		/* 年齢を受信する */
	 		ObjectInputStream ois =
				new ObjectInputStream(socket.getInputStream());
			Integer data = (Integer)ois.readObject();
			int age = data.intValue();

			/* 飲酒の可否を判定する */
			String message;
			if(age>=20){
				message = "OK";
			}else{
				message = "NO";
			}

			/* 判定結果をクライアントに送信する */
			ObjectOutputStream oos =
				new ObjectOutputStream(socket.getOutputStream());
			oos.writeObject(message);
			oos.flush();

		}// エラーが発生したらエラーメッセージを表示してプログラムを終了する
		catch(Exception e){ System.out.println("エラーが発生したのでプログラムを終了します") ;}
	}
}

>>第8講・その2(3)に戻る