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

 更新时间:2016年11月29日 15:18:08   投稿:lqh  
这篇文章主要介绍了C++ boost::asio编程-域名解析详细介绍的相关资料,这里附有实例代码,帮助大家学习理解这部分知识,需要的朋友可以参考下

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

在网络通信中通常我们并不直接使用IP地址,而是使用域名。这时候我们就需要用reslover类来通过域名获取IP,它可以实现
与IP版本无关的网址解析。

#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; 
  } 
  getchar(); 
  return 0; 
} 

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

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!

相关文章

  • VC实现批量删除指定文件的方法

    VC实现批量删除指定文件的方法

    这篇文章主要介绍了VC实现批量删除指定文件的方法,是一个比较普遍且实用的功能,需要的朋友可以参考下
    2014-07-07
  • C++执行Linux Bash命令的方法

    C++执行Linux Bash命令的方法

    今天小编就为大家分享一篇C++执行Linux Bash命令的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • C++ opencv ffmpeg图片序列化实现代码解析

    C++ opencv ffmpeg图片序列化实现代码解析

    这篇文章主要介绍了C++ opencv ffmpeg图片序列化实现代码解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-08-08
  • 从汇编看c++中变量类型的深入分析

    从汇编看c++中变量类型的深入分析

    本篇文章是对c++中的变量类型进行了详细的分析介绍。需要的朋友参考下
    2013-05-05
  • c语言++放在前面和后面的区别分析

    c语言++放在前面和后面的区别分析

    在C语言中,前缀自增(++i)和后缀自增(i++)操作符并不是同一个操作符,前缀自增操作符的优先级高于后缀自增,同时得到的结果并不完全一致,因此需要区分
    2015-11-11
  • C/C++回调函数介绍

    C/C++回调函数介绍

    回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用为调用它所指向的函数时,我们就说这是回调函数
    2013-10-10
  • C++中使用function和bind绑定类成员函数的方法详解

    C++中使用function和bind绑定类成员函数的方法详解

    这篇文章主要介绍了C++中使用function和bind绑定类成员函数的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • c/c++拷贝构造函数和关键字explicit详解

    c/c++拷贝构造函数和关键字explicit详解

    这篇文章主要介绍了c/c++拷贝构造函数和关键字explicit的相关知识,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-08-08
  • cin.get()和cin.getline()之间的区别

    cin.get()和cin.getline()之间的区别

    以下是对cin.get()和cin.getline()的区别进行了详细的分析介绍,需要的朋友可以过来参考下,希望对大家有所帮助
    2013-09-09
  • C语言小程序 如何判断三角型类型

    C语言小程序 如何判断三角型类型

    第一个判断三角形的类型,两个浮点型数据不能直接判断相等,为了输入方便一些,自己设置的精度比较低,10^(-3)
    2013-07-07

最新评论