Java ソケットを使用して (複数のクライアント要求を許可する) サーバーを作成しようとしています。私の問題は、クライアントがリクエストを送信すると、サーバーが1分ごとにサーバー時間を返すようにしたいということです。そして、クライアントがリクエストプロセスを停止するまで、サーバーに毎分永遠に時間を与えてもらいたいです(たとえば、「Ctrl + C」キーの組み合わせを使用して端末でプロセスを停止します)。これは私がすでに書いたコードですが、「give-time-each-minute loop」の実装方法がわかりません。それを行うより良い方法は何ですか?
public class Server {
public static void main(String args[]) throws IOException {
final int portNumber = Integer.parseInt(args[0]);
System.out.println("Initializing server socket at port" + portNumber);
ServerSocket serverSocket = new ServerSocket(portNumber);
while (true) {
Socket socket = serverSocket.accept();
OutputStream os = socket.getOutputStream();
PrintWriter pw = new PrintWriter(os, true);
// Here I want to introduce code to give the client the current
// server time once each minute.
// String time = getTime();
// pw.println("Current server time is: " + time);
// ...
pw.close();
socket.close();
}
}
public String getTime(){
Date date = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
String stringTime = sdf.format(date);
return stringTime;
}
}
ありがとうございました!