package chat;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

/**
 * A chat server: every line one client sends goes to every connected client.
 * The list of clients is shared by all the handler threads, so every method
 * that uses it is synchronized.
 */
public class ChatServer {

	public static final int PORT = 6000;

	public static void main ( String[] args ) throws IOException {
		ChatHub chat = new ChatHub();
		ServerSocket server = new ServerSocket(PORT);
		System.out.println("chat server listening on port " + PORT);

		int count = 0;
		for ( ; true ; ) {
			Socket socket = server.accept();
			count++;
			try {
				Thread thread =
				    new Thread(new ChatHandler(socket,chat),"client-" + count);
				thread.start();
			} catch ( IOException e ) {
				System.out
				    .println("couldn't set up client-" + count + ": " + e.getMessage());
				socket.close();
			}
		}
	}

}
