Boost.resolver将域名映射为IP,将服务转换为端口

示例代码如下:

#include <iostream>  
using namespace std;

#include <boost/asio/ip/tcp.hpp >  
#include <boost/asio.hpp>  
using namespace boost;

typedef boost::asio::ip::tcp::resolver::query CQuery;
typedef boost::asio::io_service CIoSrv;
typedef boost::asio::ip::tcp::resolver CResolver;
typedef boost::asio::ip::tcp::resolver::iterator CIterator;
typedef boost::asio::ip::tcp::endpoint CEndPt;


void main()
{
	CQuery oQuery("www.boost.org", "http");//表示一个服务器的地址和服务类型
	cout << "HostName : " << oQuery.host_name() << endl;
	cout << "ServiceName : " << oQuery.service_name() << endl;

	CIoSrv oIoSrv;//IO服务对象来执行一个IO上的操作
	CResolver oResolver(oIoSrv);//来表示一个域名和服务类型的解释操作

	//进行域名或者服务解释,以便生成SOCKET内部使用的数据格式
	CIterator itBegin = oResolver.resolve(oQuery), itEnd;
	if(itBegin == itEnd)			return;

	//解释成功之后, 显示解释后的IP地址和端口
	CEndPt oEndPt = itBegin->endpoint();
	cout << "HostIp : " << oEndPt.address() << endl;
	cout << "PortSrv : " << oEndPt.port() << endl;
}

猜你喜欢

转载自blog.csdn.net/knightonhourse/article/details/80332018