ChatServer.java


Below is the syntax highlighted version of ChatServer.java from §8.4 Operating Systems.


/******************************************************************************
 *  Compilation:  javac ChatServer.java
 *  Execution:    java ChatServer
 *  Dependencies: In.java Out.java Connection.java ConnectionListener.java
 *
 *  Creates a server to listen for incoming connection requests on
 *  port 4444.
 *
 *  % java ChatServer
 *
 *  Remark
 *  -------
 *    - Use Vector instead of ArrayList since it's synchronized.
 *
 ******************************************************************************/

import java.net.Socket;
import java.net.ServerSocket;
import java.util.Vector;

public class ChatServer {

    public static void main(String[] args) throws Exception {
        Vector<ChatConnection> connections        = new Vector<ChatConnection>();
        ServerSocket serverSocket                 = new ServerSocket(4444);
        ChatConnectionListener connectionListener = new ChatConnectionListener(connections);

        // thread that broadcasts messages to clients
        connectionListener.start();

        System.err.println("ChatServer started");

        while (true) {

            // wait for next client connection request
            Socket clientSocket = serverSocket.accept();
            System.err.println("Created socket with client");

            // listen to client in a separate thread
            ChatConnection connection = new ChatConnection(clientSocket);
            connections.add(connection);
            connection.start();
        }
    }

}


Copyright © 2000–2025, Robert Sedgewick and Kevin Wayne.
Last updated: Fri Nov 13 06:07:36 PM EST 2026.