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; 
} 

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

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

相关文章

  • C/C++ 实现递归和栈逆序字符串的实例

    C/C++ 实现递归和栈逆序字符串的实例

    这篇文章主要介绍了C/C++ 实现递归和栈逆序字符串的实例的相关资料,这里提供实例代码帮助大家学习掌握,需要的朋友可以参考下
    2017-08-08
  • 详解C++ 内存对齐

    详解C++ 内存对齐

    这篇文章主要介绍了C++ 内存对齐的相关资料,帮助大家更好的理解和使用c++编程语言,感兴趣的朋友可以了解下
    2021-01-01
  • Qt 事件处理机制的深入理解

    Qt 事件处理机制的深入理解

    本文主要介绍了Qt 事件处理机制的深入理解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-04-04
  • C语言实现简单的三子棋游戏源码

    C语言实现简单的三子棋游戏源码

    这篇文章主要为大家详细介绍了C语言实现简单的三子棋游戏源码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • c程序生成并使用共享库的操作方法

    c程序生成并使用共享库的操作方法

    在C语言开发中,共享库可以减少程序体量并实现功能共享,本文详细介绍了如何创建一个实现基本数学功能的共享库,并展示了其他程序如何利用这个库,步骤包括编写源代码、编译成目标文件、链接成共享库以及如何在其他程序中使用这个库
    2024-09-09
  • [c++]变量声明与定义的规则详解

    [c++]变量声明与定义的规则详解

    这篇文章主要介绍了[c++]变量声明与定义的规则详解,对于学习c++的朋友来说这是一个很细腻的文章,代码完整,需要的朋友可以参考下
    2021-04-04
  • c++类的隐式转换与强制转换重载详解

    c++类的隐式转换与强制转换重载详解

    转换函数的名称是类型转换的目标类型,因此,不必再为它指定返回值类型;转换函数是被用于本类型的数值或变量转换为其他的类型,也不必带参数
    2013-09-09
  • Qt编写自定义控件实现抽奖转盘

    Qt编写自定义控件实现抽奖转盘

    这篇文章主要为大家详细介绍了Qt编写自定义控件实现抽奖转盘,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • C语言动态内存管理的实现

    C语言动态内存管理的实现

    本文主要介绍了C语言动态内存管理的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • 一波C语言字符数组实用技巧集锦

    一波C语言字符数组实用技巧集锦

    这篇文章主要介绍了一波C语言字符数组实用技巧集锦,包括许多字符的转换与提取等基本操作示例,需要的朋友可以参考下
    2016-04-04

最新评论