public void listen(final int port)
    {
        try
        {
            // Create FridgeMagnets and place on Fridge
            for (int i = 0; i < MAGNETSCOUNT; i++)
            {
                // Source: http://webcache.googleusercontent.com/a/5202888
                Random r = new Random();
                char c = (char) (r.nextInt(26) + 'a');
                // 
                MagnetObject m = new MagnetObject(
                        i,
                        (int) ((Double) Math.random() * FRAMESIZE),
                        (int) ((Double) Math.random() * FRAMESIZE),
                        c);
                this.magnets.add(m);
            }
            this.serverSocket = new ServerSocket(port);
            System.out.println("Listening on port "+port+".");
            
            // Listen for new connections
            while (true)
            {
                this.socket = this.serverSocket.accept();
                System.out.println("Found new connection.");
                Connection conn = new Connection(this, this.socket);
                this.connections.add(conn);
                conn.start();
            }
        }
        catch (Exception e)
        {
            e.printStackTrace();
            System.exit(1);
        }
    }