java多线程控制台聊天室

2014-11-23 21:52:20 · 作者: · 浏览: 64

  package tf.thread;


  import java.io.BufferedReader;


  import java.io.IOException;


  import java.io.InputStreamReader;


  import java.io.PrintWriter;


  import java.net.ServerSocket;


  import java.net.Socket;


  import java.util.ArrayList;


  import java.util.List;


  import java.util.concurrent.ExecutorService;


  import java.util.concurrent.Executors;


  public class ChatServer {


  private static final int PORT = 8888; // 端口号


  private static List list = new ArrayList (); // 保存连接对象


  private ExecutorService exec;


  private ServerSocket server;


  public static void main(String[] args) {


  new ChatServer();


  }


  public ChatServer() {


  try {


  server = new ServerSocket(PORT);


  exec = Executors.newCachedThreadPool();


  System.out.println("服务器已启动!");


  Socket client = null;


  while (true) {


  client = server.accept(); // 接收客户连接


  list.add(client);


  exec.execute(new ChatTask(client));


  }


  } catch (IOException e) {


  e.printStackTrace();


  }


  }