public void draw() {
        System.out.println("Starting GUI client.");
        // Establish the sockets:
        try {
            for (int i = 0; i < 4; i++) {
                this.sockets[i] = new Socket(hostNames[i], portNumber);
                out[i] = new ObjectOutputStream(sockets[i].getOutputStream());
                in[i] = new ObjectInputStream(sockets[i].getInputStream());
            }
            // Create cyclic redraw barrier:
            CyclicBarrier cb = new CyclicBarrier(4, new Runnable() {
                @Override
                public void run() {
                    repaint();
                }
            });
            // Schedule future updates:
            for (int i = 0; i < 4; i++) {
                futures[i] = scheduler.scheduleAtFixedRate(new ReDrawer(i, i * alloy.getHeight(), cb),
                        0, 100, MILLISECONDS);
            }
        } catch (UnknownHostException ex) {
            Logger.getLogger(Display.class.getName()).log(Level.SEVERE, null, ex);
        } catch (IOException ex) {
            Logger.getLogger(Display.class.getName()).log(Level.SEVERE, null, ex);
        }
    }