Currently, the controller will block waiting for a client to connect to it. We should be able to use select() to check for new client connections without blocking if there are none. This will also allow us to have multiple clients connected to a single controller (not sure if this is an important feature or not).
This forum post gives an idea of how to achieve this.