端点

端点是用某个端口连接到的一个地主,不同类型的socket有它自己的endpoint类,比如ip::tcp::endpoint、ip::udp::endpoint和ip::icmp::endpoint

如果想连接到本机的80端口,可以这样做

ip::tcp::endpoint ep(ip::address::from_string("127.0.0.1"), 80);

有三种方式来建立一个端点

endpoint():这是默认构造函数,某些时候可以用来窗口UDP/ICMP socket

endpoint(prorocal, port):这个通常用来创建可以接受新连接的服务器端socket

endpoint(addr, port):这个创建了一个连接到某地址和端口的端点


eg:

ip::tcp::endpoint ep1;

ip::tcp::endpoint ep2(ip::tcp::v4(), 80);

ip::tcp::endpoint ep3(ip::address::from_string("127.0.0.1"), 80);


如果想连接到一个主机(不是ip地址),需要这样做

io_service service;

ip::tcp::resolver resolver(service);

ip::tcp::resolver::query query("www.yahoo.com", "80");

ip::tcp::resolver::iterator iter = resolver.resolve(query);

ip::tcp::endpoint ep = *iter;

std::cout << ep.address().to_string()<<std::endl;

// 输出“87.248.122.122”

可以用需要的socket类型来替换tcp。首先,为你想要查询的名字创建一个查询器,然后用resolve()函
数解析它。如果成功,它至少会返回一个入口。利用返回的迭代器,使用第一个入口或者遍历整个列表。


给定一个端口,可以获取它的地主,端口和ip协议

std::cout << ep.address().to_string() << ":" << ep.port() << "/" << ep.portocol() << std::endl;


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值