Source of MultiEchoServer.java


  1: 
  2: import java.io.*;
  3: import java.net.*; 
  4: 
  5: class ClientHandler extends Thread {
  6: 
  7:   protected Socket incoming; 
  8: 
  9:   public ClientHandler(Socket incoming) {
 10:     this.incoming = incoming;
 11:   }
 12: 
 13:   public void run() {
 14:     try {
 15:       BufferedReader in 
 16:         = new BufferedReader(new InputStreamReader(incoming.getInputStream())); 
 17:       PrintWriter out 
 18:         = new PrintWriter(new OutputStreamWriter(incoming.getOutputStream())); 
 19:       out.println("Hello! This is Java MultiEchoServer.");
 20:       out.println("Enter BYE to exit."); 
 21:       out.flush();
 22:       
 23:       for (;;) {
 24:         String str = in.readLine(); 
 25:         if (str == null) {
 26:           break; 
 27:         } else {
 28:           out.println("Echo: " + str);
 29:           out.flush(); 
 30:           System.out.println("Received: " + str);
 31:           
 32:           if (str.trim().equals("BYE")) 
 33:             break; 
 34:         }
 35:       }
 36:       incoming.close(); 
 37:     } catch (Exception e) {
 38:       System.out.println("Error: " + e); 
 39:     }
 40:   }
 41: 
 42: }
 43: 
 44: public class MultiEchoServer {
 45: 
 46:   public static void main(String[] args) {
 47:     System.out.println("MultiEchoServer started."); 
 48:     
 49:     try {
 50:       ServerSocket s = new ServerSocket(8009); 
 51:       for (;;) {
 52:         Socket incoming = s.accept(); 
 53:         new ClientHandler(incoming).start(); 
 54:       }
 55:     } catch (Exception e) {
 56:       System.out.println("Error: " + e); 
 57:     }
 58: 
 59:     System.out.println("MultiEchoServer stopped."); 
 60:   }
 61: }