port can be 0