当前位置: 首页 > news >正文

第13章 网络 Page744~746 asio核心类 ip::tcp::endPoint

2.   ip::tcp::endpoint

ip::tcp::socket用于连接TCP服务端的 async_connect()方法的第一个入参是
const endpoint_type& peer_endpoint. 此处的类型 endpoint_type 是 ip::tcp::endpoint 在
在 ip::tcp::socket 类内部的一个别名。

libucurl 库采用字符串URL表达目标的地址,如:“http://www.sina.com.cn”。其中“www.sina.com.cn”代表主机在互联网中的位置。采用的是方便人类阅读、理解和记忆的字符串内容。实际访问前需要转换成形如IP地址(V4或V6版本)。示例地址没有给出端口号,但协议http约定了默认端口是80.
asio主要用于处理传输层的TCP, UDP等通信协议这两个协议对目标地址的要求都是"主机地址 + 端口号"。其中主机地址采用IP(V4或V6)形式。

ip::tcp::endpoint类用于表达"主机地址(IP形式) + 端口号"的组合。
对应的成员方法是 address() 和 port(). 

以下结构用于示意:

struct endpoint //端地址
{address address() const; //取地址void address(address const& address); //设置第七unsigned short int port() const; ///取端口号void port(unsigned short int port); //设置端口号
};

类型名和方法名重名
取值方法和设置方法重名

boost::asio::ip::address. 

address类全名是boost::asio::ip::address. 
注意它归属在ip之下,这意味这它通用于TCP和UDP.

address类提供静态成员函数from_string()
普通成员函数to_string()。二者实现IP地址的内部表达和IPV4或IPV6的字符串格式间的转换

boost::asio::ip::address adr;
adr = boost::asio::ip::address::from_string("60.215.128.246");
cout << adr.to_string() << endl;

有address,在加上端口号,可以拼出新浪网服务在传输层上的地址

......
boost::asio::ip::tcp::endpoint sina_endpoint;
sina_endpoint.address(adr);
sina_endpoint.port(80);

然后就可以用ip::tcp::socket主动连接新浪的服务器。

连接新浪示意代码:

 

相关文章:

  • 5G LAN
  • docker 1:介绍
  • .NET Core MongoDB数据仓储和工作单元模式封装
  • 这才是大学生该做的副业,别再痴迷于游戏了!
  • 跟LV学Python编程——前言
  • C++类和对象-多态->多态的基本语法、多态的原理剖析、纯虚函数和抽象类、虚析构和纯虚析构
  • 110 C++ decltype含义,decltype 主要用途
  • 【Java】案例:检测MySQL是否存在某数据库,没有则创建
  • 第六章 管理文档 - 插入或替换文档:%SaveDocument()
  • 算法学习系列(三十五):贪心(杂)
  • 简洁高效的短链接:优化互联网体验
  • C#,二分法(Bisection Method)求解方程的算法与源代码
  • 寿司转盘,用 C 编码
  • FPGA中的模块调用与例化
  • 云计算基础-存储基础
  • Babel配置的不完全指南
  • classpath对获取配置文件的影响
  • css的样式优先级
  • Fundebug计费标准解释:事件数是如何定义的?
  • overflow: hidden IE7无效
  • Wamp集成环境 添加PHP的新版本
  • 浮动相关
  • 近期前端发展计划
  • 一个普通的 5 年iOS开发者的自我总结,以及5年开发经历和感想!
  • Linux权限管理(week1_day5)--技术流ken
  • Python 之网络式编程
  • zabbix3.2监控linux磁盘IO
  • ​人工智能之父图灵诞辰纪念日,一起来看最受读者欢迎的AI技术好书
  • #HarmonyOS:基础语法
  • #前后端分离# 头条发布系统
  • (1)Android开发优化---------UI优化
  • (14)目标检测_SSD训练代码基于pytorch搭建代码
  • (26)4.7 字符函数和字符串函数
  • (30)数组元素和与数字和的绝对差
  • (附源码)基于SSM多源异构数据关联技术构建智能校园-计算机毕设 64366
  • (免费领源码)python#django#mysql公交线路查询系统85021- 计算机毕业设计项目选题推荐
  • (三)centos7案例实战—vmware虚拟机硬盘挂载与卸载
  • (三分钟)速览传统边缘检测算子
  • (转)Android中使用ormlite实现持久化(一)--HelloOrmLite
  • (转)平衡树
  • ***监测系统的构建(chkrootkit )
  • .net 获取url的方法
  • .net 生成二级域名
  • .NET程序员迈向卓越的必由之路
  • /dev/VolGroup00/LogVol00:unexpected inconsistency;run fsck manually
  • @for /l %i in (1,1,10) do md %i 批处理自动建立目录
  • @我的前任是个极品 微博分析
  • [ 渗透测试面试篇 ] 渗透测试面试题大集合(详解)(十)RCE (远程代码/命令执行漏洞)相关面试题
  • [Android]常见的数据传递方式
  • [Ariticle] 厚黑之道 一 小狐狸听故事
  • [CSS3备忘] transform animation 等
  • [ERROR ImagePull]: failed to pull image k8s.gcr.io/kube-controller-manager失败
  • [ERROR] 不再支持目标选项 5。请使用 7 或更高版本
  • [FC][常见Mapper IRQ研究]
  • [HEOI2013]ALO