package info.istlab.ServerTester; // 時刻を答えるサーバプログラムTimeServer.java import java.io.PrintStream; import java.net.Socket; import java.util.Date; // TimeServerクラス public class TimeServer extends Server{ public TimeServer(){ this(10123); } public TimeServer(int port) { this(port, "127.0.0.1"); } public TimeServer(String bindaddress) { this(10123, bindaddress); } public TimeServer(int port, String bindaddress) { super(port, bindaddress); start(); } public void handleRequest() { Socket clientSocket;// ソケットの読み書き用オブジェクト PrintStream os; String outstr; // 出力データを格納する文字列 Date d; // 日付時刻処理用オブジェクト // サーバ側の処理の繰り返し while (thread != null) { try { clientSocket = serverSocket.accept(); // 接続がくるまで、ここで待つ System.out.println("(TimeServer) accepted (client has connected)"); System.out.println(clientSocket.getRemoteSocketAddress().toString()); os = new PrintStream(clientSocket.getOutputStream()); // 出力用データの作成 d = new Date(); outstr = "\n" + "Hello, this is TimeServer.\n" + d.toString() + "\n"; System.out.println("(サーバ→クライアント) " + outstr); // データの出力(1回目) os.println(outstr); Thread.sleep(3000); // 3秒まつ outstr = new Date().toString(); os.println(outstr); // データの出力(2回目) System.out.println("(サーバ→クライアント) " + outstr); Thread.sleep(3000); // 3秒まつ outstr = "Thank you."; os.println(outstr); System.out.println("(サーバ→クライアント) " + outstr); os.close(); // 接続終了 clientSocket.close(); System.out.println("(TimeServer) クライアントからの接続を閉じました"); } catch (Exception ex) { ex.printStackTrace(); } } } public static void main(String[] args) { invokeMain(args, "TimeServer"); } }