Better exception handling.  Use rsplit to parse address:port options so ipv6 addresses work.