class ClientHandler extends Thread
public class MultiEchoServer
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: }