Splitted the start function into a two in order to access the bound port
Created by: tkarls
This is relevant if binding on a random free port (0) and since start never returns... we need a split function to safely get it
The old start() function is left calling my splitted functions for backwards compatibility and simplicity when you do know the port in advance.
I needed this for my project and thought I should share it in case it is deemed an acceptable solution to the problem of getting the port.