From 51ad8568b4e1b18d88bc331ddebe35d4e1422ead Mon Sep 17 00:00:00 2001 From: Davis King Date: Wed, 24 Oct 2012 22:58:28 -0400 Subject: [PATCH] Added connect_to() --- dlib/bridge/bridge.h | 25 +++++++++++++++++++++++++ dlib/bridge/bridge_abstract.h | 11 +++++++++++ 2 files changed, 36 insertions(+) diff --git a/dlib/bridge/bridge.h b/dlib/bridge/bridge.h index 377f62ff7..9cc6bb02c 100644 --- a/dlib/bridge/bridge.h +++ b/dlib/bridge/bridge.h @@ -43,6 +43,31 @@ namespace dlib const unsigned short port; }; + inline connect_to_ip_and_port connect_to ( + const network_address& addr + ) + { + // make sure requires clause is not broken + DLIB_ASSERT(addr.port != 0, + "\t connect_to_ip_and_port()" + << "\n\t The TCP port to connect to can't be 0." + << "\n\t addr.port: " << addr.port + ); + + if (is_ip_address(addr.host_address)) + { + return connect_to_ip_and_port(addr.host_address, addr.port); + } + else + { + std::string ip; + if(hostname_to_ip(addr.host_address,ip)) + throw socket_error(ERESOLVE,"unable to resolve '" + addr.host_address + "' in connect_to()"); + + return connect_to_ip_and_port(ip, addr.port); + } + } + struct listen_on_port { listen_on_port( diff --git a/dlib/bridge/bridge_abstract.h b/dlib/bridge/bridge_abstract.h index 416bb749f..76ed21153 100644 --- a/dlib/bridge/bridge_abstract.h +++ b/dlib/bridge/bridge_abstract.h @@ -27,6 +27,17 @@ namespace dlib !*/ }; + connect_to_ip_and_port connect_to ( + const network_address& addr + ); + /*! + requires + - addr.port != 0 + ensures + - converts the given network_address object into a connect_to_ip_and_port + object. + !*/ + struct listen_on_port { listen_on_port(