If you want to listen on multiple ports in an efficiant way (=SingleThreaded) it may be a good idea to have a look at java.nio.SocketChannel and Selector, but I assume this is overkill for a low load scenario.

Regarding the "No enclosing instance of type Start is accessible.":

Either create the treads in the constructor and create a new object of your class or declare the inner class static (if it does not need access to outer classes members)