#include #include #include #include #include #include #include #include #include using namespace std; using namespace boost::asio::ip; using boost::asio::ip::tcp; int main(int argc, char *argv[]){ char *host_str; host_str=argv[1]; try { boost::asio::io_service io_service; tcp::resolver resolver(io_service); tcp::resolver::query query(host_str, "2323"); tcp::resolver::iterator endpoint_iterator = resolver.resolve(query); tcp::resolver::iterator end; tcp::socket socket(io_service); boost::system::error_code error = boost::asio::error::host_not_found; while (error && endpoint_iterator != end) { socket.close(); socket.connect(*endpoint_iterator++, error); } if (error) throw boost::system::system_error(error); for (;;) { char buf[128]; std::string ip_address; boost::system::error_code error; size_t len=socket.read_some(boost::asio::buffer(buf), error); buf[len]=0; ip_address=buf; if (error == boost::asio::error::eof) break; else if (error) throw boost::system::system_error(error); // Some other error. std::cout << "Received IP address:" << ip_address << std::endl; } } catch (std::exception& e) { std::cerr << e.what() << std::endl; } return 0; };