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

2024-02-18 07:52

本文主要是介绍第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); //设置端口号
};

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

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主动连接新浪的服务器。

连接新浪示意代码:

 

这篇关于第13章 网络 Page744~746 asio核心类 ip::tcp::endPoint的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/720524

相关文章

Debian 13升级后网络转发等功能异常怎么办? 并非错误而是管理机制变更

《Debian13升级后网络转发等功能异常怎么办?并非错误而是管理机制变更》很多朋友反馈,更新到Debian13后网络转发等功能异常,这并非BUG而是Debian13Trixie调整... 日前 Debian 13 Trixie 发布后已经有众多网友升级到新版本,只不过升级后发现某些功能存在异常,例如网络转

Python进阶之列表推导式的10个核心技巧

《Python进阶之列表推导式的10个核心技巧》在Python编程中,列表推导式(ListComprehension)是提升代码效率的瑞士军刀,本文将通过真实场景案例,揭示列表推导式的进阶用法,希望对... 目录一、基础语法重构:理解推导式的底层逻辑二、嵌套循环:破解多维数据处理难题三、条件表达式:实现分支

深度解析Python yfinance的核心功能和高级用法

《深度解析Pythonyfinance的核心功能和高级用法》yfinance是一个功能强大且易于使用的Python库,用于从YahooFinance获取金融数据,本教程将深入探讨yfinance的核... 目录yfinance 深度解析教程 (python)1. 简介与安装1.1 什么是 yfinance?

Linux查询服务器 IP 地址的命令详解

《Linux查询服务器IP地址的命令详解》在服务器管理和网络运维中,快速准确地获取服务器的IP地址是一项基本但至关重要的技能,下面我们来看看Linux中查询服务器IP的相关命令使用吧... 目录一、hostname 命令:简单高效的 IP 查询工具命令详解实际应用技巧注意事项二、ip 命令:新一代网络配置全

Python开发简易网络服务器的示例详解(新手入门)

《Python开发简易网络服务器的示例详解(新手入门)》网络服务器是互联网基础设施的核心组件,它本质上是一个持续运行的程序,负责监听特定端口,本文将使用Python开发一个简单的网络服务器,感兴趣的小... 目录网络服务器基础概念python内置服务器模块1. HTTP服务器模块2. Socket服务器模块

Go语言网络故障诊断与调试技巧

《Go语言网络故障诊断与调试技巧》在分布式系统和微服务架构的浪潮中,网络编程成为系统性能和可靠性的核心支柱,从高并发的API服务到实时通信应用,网络的稳定性直接影响用户体验,本文面向熟悉Go基本语法和... 目录1. 引言2. Go 语言网络编程的优势与特色2.1 简洁高效的标准库2.2 强大的并发模型2.

Linux之UDP和TCP报头管理方式

《Linux之UDP和TCP报头管理方式》文章系统讲解了传输层协议UDP与TCP的核心区别:UDP无连接、不可靠,适合实时传输(如视频),通过端口号标识应用;TCP有连接、可靠,通过确认应答、序号、窗... 目录一、关于端口号1.1 端口号的理解1.2 端口号范围的划分1.3 认识知名端口号1.4 一个进程

深度解析Spring Security 中的 SecurityFilterChain核心功能

《深度解析SpringSecurity中的SecurityFilterChain核心功能》SecurityFilterChain通过组件化配置、类型安全路径匹配、多链协同三大特性,重构了Spri... 目录Spring Security 中的SecurityFilterChain深度解析一、Security

Olingo分析和实践之OData框架核心组件初始化(关键步骤)

《Olingo分析和实践之OData框架核心组件初始化(关键步骤)》ODataSpringBootService通过初始化OData实例和服务元数据,构建框架核心能力与数据模型结构,实现序列化、URI... 目录概述第一步:OData实例创建1.1 OData.newInstance() 详细分析1.1.1

Spring Boot Maven 插件如何构建可执行 JAR 的核心配置

《SpringBootMaven插件如何构建可执行JAR的核心配置》SpringBoot核心Maven插件,用于生成可执行JAR/WAR,内置服务器简化部署,支持热部署、多环境配置及依赖管理... 目录前言一、插件的核心功能与目标1.1 插件的定位1.2 插件的 Goals(目标)1.3 插件定位1.4 核