add getopt() to specify port to listen