parse command line args
if port is 0 kernel will assign ephemeral port, so don't accept port 0