Moved InvalidSocketException from hub project, added determineExternalIp()