pub fn get_socket_addr<T: ToSocketAddrs>(
    addr: T
) -> Result<SocketAddr, NetworkError>