package simplejavaserver; import java.net.*; import java.io.*; public class SimpleJavaServer extends Thread { private ServerSocket serverSocket; public SimpleJavaServer(int port) throws IOException { serverSocket = new ServerSocket(port); //serverSocket.setSoTimeout(10000); // By commenting out the timeout the server will wait for the client forever! } public void run() { while(true) { try { // Let the user know we are waiting for a client System.out.println("Waiting for client on " + Inet4Address.getLocalHost().getHostAddress() + ":" + serverSocket.getLocalPort() + "..."); // Wait for a new client. Hang until a new one connects Socket server = serverSocket.accept(); //DataInputStream in = new DataInputStream(server.getInputStream()); BufferedReader din = new BufferedReader(new InputStreamReader(server.getInputStream())); DataOutputStream out = new DataOutputStream(server.getOutputStream()); // Let the user know we have accepted a client System.out.println("Just connected to " + server.getRemoteSocketAddress()); // Let the user know what the client sent System.out.print("Client: "); System.out.println(din.readLine()); // Send the welcome message to the client System.out.println("Sending welcome messsage"); out.writeChars("Thank you for connecting to " + server.getLocalSocketAddress() + "\nGoodbye!"); // Close the connection the client so we can listen for new cients server.close(); }catch(SocketTimeoutException s) { System.out.println("Socket timed out!"); break; }catch(IOException e) { e.printStackTrace(); break; } } } public static void main(String [] args) { int port = 6000; try { Thread t = new SimpleJavaServer(port); t.start(); }catch(IOException e) { e.printStackTrace(); } } }