<address id="ousso"></address>
<form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
  1. C語言

    C++ boost::asio編程-域名解析詳解

    時間:2025-05-19 18:55:26 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++ this指針詳解07-04

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

    c++ 中--declspec 的用法詳解08-13

    C++ cin輸入流詳解10-11

    C++ 排序插入排序詳解08-03

    C++類中的繼承實例詳解07-05

    C++冒泡排序算法實例詳解06-09

    C++的字符串分割函數的使用詳解08-08

    c++運算符重載基礎知識詳解08-20

    <address id="ousso"></address>
    <form id="ousso"><track id="ousso"><big id="ousso"></big></track></form>
    1. 日日做夜狠狠爱欧美黑人