62 lines
2.0 KiB
Java
62 lines
2.0 KiB
Java
|
DateServer
|
||
|
|
||
|
import java.net.*;
|
||
|
import java.io.*;
|
||
|
import java.util.Date;
|
||
|
|
||
|
public class DateServe {
|
||
|
|
||
|
static final int LISTENING_PORT = 32007;
|
||
|
|
||
|
|
||
|
public static void main(String[] args) {
|
||
|
|
||
|
ServerSocket listener; // Listens for incoming connections.
|
||
|
Socket connection; // For communication with the
|
||
|
// connecting program.
|
||
|
|
||
|
/* Accept and process connections forever, or until
|
||
|
some error occurs. (Note that errors that occur
|
||
|
while communicating with a connected program are
|
||
|
caught and handled in the sendDate() routine, so
|
||
|
they will not crash the server.)
|
||
|
*/
|
||
|
|
||
|
try {
|
||
|
listener = new ServerSocket(LISTENING_PORT);
|
||
|
TextIO.putln("Listening on port " + LISTENING_PORT);
|
||
|
while (true) {
|
||
|
connection = listener.accept();
|
||
|
sendDate(connection);
|
||
|
}
|
||
|
}
|
||
|
catch (Exception e) {
|
||
|
TextIO.putln("Sorry, the server has shut down.");
|
||
|
TextIO.putln("Error: " + e);
|
||
|
return;
|
||
|
}
|
||
|
|
||
|
} // end main()
|
||
|
|
||
|
|
||
|
static void sendDate(Socket client) {
|
||
|
// The parameter, client, is a socket that is
|
||
|
// already connected to another program. Get
|
||
|
// an output stream for the connection, send the
|
||
|
// current date, and close the connection.
|
||
|
try {
|
||
|
System.out.println("Connection from " +
|
||
|
client.getInetAddress().toString() );
|
||
|
Date now = new Date(); // The current data and time.
|
||
|
PrintWriter outgoing; // Stream for sending data.
|
||
|
outgoing = new PrintWriter( client.getOutputStream() );
|
||
|
outgoing.println( now.toString() );
|
||
|
outgoing.flush(); // Make sure the data is actually sent!
|
||
|
client.close();
|
||
|
}
|
||
|
catch (Exception e){
|
||
|
System.out.println("Error: " + e);
|
||
|
}
|
||
|
} // end sendDate()
|
||
|
} //end class DateServe
|