C语言

C++ boost::asio编程-域名解析详解

时间:2024-10-13 09:59:03 C语言 我要投稿
  • 相关推荐

C++ boost::asio编程-域名解析详解

  在网络通信中通常我们并不直接使用IP地址,而是使用域名。这时候我们就需要用reslover类来通过域名获取IP,它可以实现与IP版本无关的网址解析。下面,就和小编一起来看一看C++ boost::asio编程-域名解析详解,希望对大家有帮助!


  #include "stdafx.h"

  #include "boost/asio.hpp"

  #include "boost/shared_ptr.hpp"

  #include "boost/thread.hpp"

  #include <boost/lexical_cast.hpp>//使用字符串转换功能

  using namespace std;

  using namespace boost::asio;

  #ifdef _MSC_VER

  #define _WIN32_WINNT  0X0501 //避免VC下编译警告

  #endif

  //域名解析为IP

  //入参:域名,端口

  //返回:ip地址

  vector<string> domain2ip(const char *domain,int port)

  {

  io_service ios;

  //创建resolver对象

  ip::tcp::resolver slv(ios);

  //创建query对象

  ip::tcp::resolver::query qry(domain,boost::lexical_cast<string>(port));//将int型端口转换为字符串

  //使用resolve迭代端点

  ip::tcp::resolver::iterator it=slv.resolve(qry);

  ip::tcp::resolver::iterator end;

  vector<string> ip;

  for(;it!=end;it++)

  {

  ip.push_back((*it).endpoint().address().to_string());

  }

  return ip;

  }

  int _tmain(int argc, _TCHAR* argv[])

  {

  vector<string> ip=domain2ip("www.csdn.net",0);

  for(int i=0;i<ip.size();i++)

  {

  cout<<ip[i]<<endl;

  }

  get);

  return 0;

  }

  其中经过测试,端口可以填任意值均可以解析出来。


【C++ boost::asio编程-域名解析详解】相关文章:

c++快速排序详解10-18

C语言函数式编程中惰性求值详解09-06

linux网络编程用到的网络函数详解和使用示例10-14

C语言编程中的联合体union入门学习教程详解10-15

C++类的转换10-17

C++函数考点归纳09-30

C/C++内存管理09-20

Java与C/C++的区别06-18

C语言和C++的分别06-18

C语言和C++的区别精选10-16