我試圖使用java套接字製作服務器(允許多個客戶端請求)。我的問題是,我想讓客戶端發送請求時,服務器每分鐘回覆一次服務器時間。並且我希望服務器每分鐘給予一次永久,直到客戶端停止請求過程(例如,使用「Ctrl + C」組合鍵在終端中停止進程)。這是我已經編寫的代碼,但我不確定如何實現「每分鐘給予時間循環」。有什麼更好的方法來做到這一點?(Java服務器套接字)每分鐘向客戶端發送消息
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;
}
}
謝謝!
也許用'的Thread.sleep()'。如果你想每分鐘發一些東西,那麼讓客戶每分鐘都問一次會更容易,這會阻止你維護一個打開的套接字。 –