23.muduo学习笔记之net_InetAddress.{h&cc}

从零开始学写HTTP服务器(六)使用muduo网络库 muduo实现简单的HttpServer 阅读详情

1. 说明

  1. 有一个地址类InetAddress,对IPv4或IPv6地址的封装
  2. 可复制的

2. 变量

  1. 联合体类型的addr_/addr6_
    • 保存IPv4或IPv6地址

3. 函数

  1. 几个构造函数

    • 就是看是否是IPv6,和对addr_的赋值
    • StringArg是base库中StringPiece中的一个类,就是对char*类型的封装
  2. family()

    • 返回addr_.sin_family
  3. toIp()

    • 调用sockets::toIp(),给addr6赋值,返回buf,里面存的IP的点分十进制字符串
  4. toIpPort()

    • 调用sockets::toIp(),给addr6赋值,返回buf,里面存的IP的点分十进制字符串和端口信息
  5. toPort()

    • 把网络字节序的port转换为主机字节序的port返回
  6. getSockAddr()

    • 返回addr6_的sockaddr*类型
  7. setSockAddrInet6(const struct sockaddr_in6& addr6)

    • 给addr6_赋值
  8. ipNetEndian()

    • 如果是IPv4的话,返回网络字节序的ip地址
  9. portNetEndian()

    • 返回addr_.sin_port,就是返回网络字节序的port
  10. resolve(StringArg hostname, InetAddress* result)

    • 主要调用gethostbyname_r,根据主机名获得ip地址等信息
  11. setScopeId(uint32_t scope_id)

    • 如果是IPv6的话,给addr6_.sin6_scope_id赋值
LAMMPS实操系列(一): 大量FCC-CoCrCuFeNi高熵合金建模与最稳定结构筛选 高熵合金(High-entropy alloys,HEA),是由五种或五种以上等量或大约等量金属形成的合金。由于高熵合金可能具有许多优秀的物理化学性质,因此在材料科学领域受到广泛关注 阅读详情

相关推荐

Transformer在CV里太耗算力?手把手拆解Restormer的MDTA与GDFN模块

本文深度解析了CVPR2022最佳论文提名作品Restormer的创新模块MDTA与GDFN,有效解决了Transformer在计算机视觉领域的高计算复杂度问题。通过通道注意力降维和门控前馈网络设计,Restormer在图像恢复重建任务中显著降低计算量,同时保持高性能,为实时图像处理提供了可行方案。

weixin_30258901的博客 445

muduo网路库——InetAddress

这个类的主要作用就是封装socket。 由于博主是在windows平台下,所以用的头文件时windows.h和Ws2tcpip.h。 linux平台下应该用sys/socket.h、netinet/in.h和arpa/inet.h。 InetAddress.h #pragma once /* linux下 * #include<arpa/inet.h> //for sockaddr * #include <netinet/in.h> */ #include <string

0 error(s) 633

软考 系统架构设计师历年真题集萃(248)

软考 系统架构设计师历年真题集萃(248)

phmatthaus的专栏 791

muduo库 InetAddress

#pragma once #include<arpa/inet.h> #include<netinet/in.h> #include<string> //设置 sockaddr_in(内含IP,端口等) class InetAddress { public: explicit InetAddress(uint16_t port=0,std::string ip = "127.0.0.1"); explicit InetAddress(const

weixin_50911232的博客 369

斗鱼直播间弹幕爬虫实战:WebSocket连接与实时数据采集

在数据驱动的时代,直播平台的弹幕数据蕴含着巨大的价值——用户行为分析、舆情监控、弹幕情感分析、直播热度评估等应用场景层出不穷。斗鱼作为国内领先的直播平台,其弹幕系统基于WebSocket协议实现实时双向通信。本文将带您从零开始,使用Python构建一个完整的斗鱼直播间弹幕爬虫系统。

2201_76125261的博客 137

【IxNetwork】史上最全IxNetwork测试仪使用精讲(一),图文教程超赞超详细!!!

IXIA使用的是Server-client模式,Server端在测试仪表的主机上,在开机后会随着主机内的操作系统的启动而自动启动,一般情况下不需要人为的手工启动。因此在通常不需要为主机配置专用的显示器和键盘。client端包括两个测试软件: Ixia Explorer和ScriptMate。这两个软件一般安装在测试用计算机上,在仪表自带的主机中也有这两个软件。根据测试项目的不同来选择使用不同的软件。Ixia Explorer主要提供数据流的测试,针对设备的功能进行测试;

风云说通信 2056

InetAddress Class源码阅读(muduo::net)

InetAddress Class源码阅读(muduo::net) 如果有问题,欢迎交流!!! 对网络地址的封装。 数据成员 union{stuct sockaddr_in addr_;struct sockaddr_in6 addr6_;} 也就是说,对于一个InetAddress Class类型的对象来说,它既可以是一个ipv4,也可以是一个ipv6。反正大多数基本api输入的参数都要sockaddr,然后自己检查类型。我们可以先获取addr_,然后再根据sin_family做最终确定。就像soc

Wendell_0的博客 259

VLA仿真平台:Isaac sim、MuJoCo

在虚拟仿真领域,VLA(Virtual Learning Agent)仿真器是用于开发和训练虚拟机器人代理的环境,它们为机器人提供了一个平台来进行各种任务的模拟和学习,特别是在强化学习(RL)中。两款广泛应用的仿真器是和。这两者各有其特点和优势,适用于不同类型的机器人研究和开发。

u013250861的博客 862

muduo网络库学习 Endian.h-Socket-Sockets-InetAddress(5)

muduo网络库学习 Endian.h-Socket-Sockets-InetAddress(5) 文章目录muduo网络库学习 Endian.h-Socket-Sockets-InetAddress(5)前言一、Endian.h二、SocketOps三、Socket4.InetAddress总结 前言 本章主要介绍muduo库中对一些TCP系统调用的封装。 一、Endian.h 首先明确一个地址存一个字节 网络字节序(大端字节序): 高字节在低地址,低字节在高地址(符合人类看) 主机字节序(小端字节

qq_41409979的博客 696

bevformer详解(3): 逐行代码讲解

在这篇文章中,我们将从BEVFormer算法代码入手,深入探究BEV转换的流程。BEVFormer是一种基于Transformer的BEV转换模型,其核心思想是利用自注意力机制和交叉注意力机制,从,并通过Object Query与BEV特征的交互,完成3D目标检测和地图分割等任务。https://developer.baidu.com/article/details/3224715bevformer的网络结构由三部分组成, 模型结构所示,其中的是部分,对于的是的结构,对于部分,沿用的中的decoder部分,

@bangbang的博客 3701

10、业务任务(service task)

业务任务通常是用来调用业务系统,camunda中可以调用JAVA代码或者rest api调用。 在camunda中,业务任务实现方式有5种,本节先用一个小例子显示前三种,External 外部任务,Connector连接器后面分别讲解。假设用户预约电器公司上门维修家电,然后师傅上门维修,完成后公司回访客户对师傅服务打分,师傅查询自己的评分。使用java class 模式实现业务任务。 com.forestlake.camunda.servicetask.ReserveRepair 使用Delegate ex

leyoliu的博客 3232

InetAddress类分析[2-0]

InetAddress.h

阳光梦的专栏 1182

LibCity:开源的交通预测算法库 | 面向小白,从0到1【SUMO十字路口仿真建模】路网搭建、车辆配置、实现仿真、仿真结果输出

LibCity:开源的交通预测算法库 | 面向小白,从0到1【SUMO十字路口仿真建模】路网搭建、车辆配置、实现仿真、仿真结果输出

追光者♂:记录、分享、总结、提升,现象级专栏《Python从入门到人工智能》作者,无惧黑暗,坚信曙光 458

muduo网络库源码复现笔记(二十一):Acceptor类、InetAddress类、Sockets类、SocketsOps.cc

Muduo网络库简介 muduo 是一个基于 Reactor 模式的现代 C++ 网络库,作者陈硕。它采用非阻塞 IO 模型,基于事件驱动和回调,原生支持多核多线程,适合编写 Linux 服务端多线程网络应用程序。 muduo网络库的核心代码只有数千行,在网络编程技术学习的进阶阶段,muduo是一个非常值得学习的开源库。目前我也是刚刚开始学习这个网络库的源码,希望将这个学习过程记录下来。这个网络库的源码已经发布在GitHub上,可以点击这里阅读。目前Github上这份源码已经被作者用c++11重写,我学习的

梁熙民的csdn博客 359

大中型超市收银系统(可直接运行)

光步前台收银系统系统功能:商品销售、商品退货、挂单、收银员权限、会员销售、单品取消、整单取消、商品查询、脱机销售、脱机数据上传,基本资料下载,开钱箱、小票打印、收款结算,支持多币种付款方式(现金、储值卡、礼券、微信等),支持多种促销。运行环境:.net 4.0登陆信息用户名:1001 密码:123456内置商品信息,商品编码可输入00001000 - 00010000,测试效果相关功能键F5 结算 F9挂单 F11商品查询 F8退货 Insert单品取消 Del整单取消 F12开钱箱F2 会员 Ctrl+Z退出系统 Home 锁屏 相关源码待公开

Data-Structures-and-Algorithm-Analysis-in-Java.pdf

作者: Weiss, Mark A. 出版社: Addison Wesley Data Structures and Algorithm Analysis in Java is an “advanced algorithms” book that fits between traditional CS2 and Algorithms Analysis courses. In the old ACM Curriculum Guidelines, this course was known as CS7. This text is for readers who want to learn good programming and algorithm analysis skills simultaneously so that they can develop such programs with the maximum amo...

【Muduo源码剖析笔记】 网络库之InetAddress

Muduo库源码阅读笔记

LeeEdgar的博客 380

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

【muduo】链接时出现大量的undefined reference to `muduo::***‘错误

muduo

sidemap的博客 1442

LinePhone3.2.7(android端最新版本) sip客户端

SIP客户端For android:LinePhone3.2.7(最新版本),官网地址:http://www.linphone.org/

Muduo 网络编程示例之一:五个简单 TCP 协议

这是《Muduo 网络编程示例》系列的第一篇文章。本文将介绍五个简单 TCP 网络服务协议的 muduo 实现,包括 echo (RFC 862)、discard (RFC 863)、chargen (RFC 864)、daytime (RFC 867)、time (RFC 868),以及 time 协议的客户端。以上五个协议使用不同的端口,可以放到同一个进程中实现,且不必使用多线程。

陈硕的Blog 2万+

muduo源码分析之实现TCP网络库(连接的接收和关闭)

muduo源码分析之实现TCP网络库 TcpServer TcpConnection

上善若水 2245

【muduo网络库学习】之Acceptor类分析

《Linux多线程服务端编程》一书的8.4节介绍了Acceptor类的实现,下面是对这个类的分析。 首先从client端入手看看怎么来使用这个类,client的程序如下: #include "Acceptor.h" #include "EventLoop.h" #include "InetAddress.h" #include "SocketsOps.h" #include void ne

messiran10的专栏 785

关于muduo网络库的注解

注:muduo用C++实现蛮有意思的,其大量使用boost的shared_ptr,bind,function实现对象生命期控制、事件回调机制,且基于对象编程而非面向对象编程。在此记点笔记吧,以备后查。 文字部分: 1 Reactor模式的实现:关键是三个类:Channel,Poller,EventLoop。          class Channel:事件分发器,其记录了描述符fd的注册事

liuxuejiang158的专栏 4359

muduo整体介绍及Echo服务器流程分析

这节介绍了muduo各个类和.h .cc文件的作用,之后以Echo服务器为例介绍了muduo处理事件的大概流程

KangRoger的专栏 2929

muduo学习笔记:net部分之Socket、SocketsOpts和InetAddress

muduo实现非阻塞的TCP连接,对socket相关内容进行了非常详尽的封装,主要封装Socket、SocketsOpts和InetAddress。另外在Socket使用了Endian的跨平台使用的大小端转换函数。 有关socket网络编程更详尽的介绍和使用,可以参考专栏【socket网络编程】。 1、Socket Socket类是封装了socket文件描述符的类,通过RAII实现了声明周期的管理,在对象析构时自动关闭socket描述符。该类仅提接口,具体操作均封装在了SocketsOpts中。 class

热爱生活,忠于自己 678

InetAddress类简单使用(网络编程)

package 课堂; import java.net.InetAddress; import java.net.UnknownHostException; /** * company: www.abc.com * Author: Administrator * Create Data: 2019/8/15 */ public class InternetProgramma { ...

qq_34444599的博客 310

使用muduo编译链接错误 undefined reference to `muduo::ThreadPool::run(boost::function<void ()()>&&)'

用nm查看引用的libmuduo_base.a里面,发现确实没有这个函数,连ThreadPool类都没有编译进来。不过在libmuduo_base_cpp11.a里面,nm查看是有这个ThreadPool的。将Makefile的链接库改为-lmuduo_base_cpp11,编译通过。 遇到问题要冷静思考,运用合适的工具去分析解决。

九遍斋的专栏 3140

InetAddress

InetAddress类就是封装了IPv4地址和IPv6地址。比较简单,这是muduo库中少有的值语义的类,所以继承的是copyable。实际上copyable只是强调可以拷贝,并没有实际意义。即使不继承该类还是可以copy。 InetAddress::InetAddress(uint16_t port, bool loopbackOnly, bool ipv6) { static_assert(offsetof(InetAddress, addr6_) == 0, "addr6_ offset 0

qu1993的博客 517

《muduo网络库》学习笔记——实现TCP网络库和核心类介绍

1. 实现TCP网络库 在muduo中,Reactor事件处理框架如下所示,从poll返回到再次调用poll阻塞称为一次事件循环。不同于传统的Reactor,将timers 做成循环中单独的一步,muduo将 timers 和IO handlers 视为等同的。 2. Acceptor Acceptor class 用于 accept 新的TCP 连接, 并通过回调通知使用者。它是一个内部class ,供 Tcpserver 使用,且生命期由 Tcpserver控制。其定义如下: class

baidu_15952103的博客 489
上一篇: 22.muduo学习笔记之net_Endian.{h&cc}
下一篇: 24.muduo学习笔记之net_SocketsOps.{h&cc}
PartnerLv
博客等级 码龄10年 338粉丝 74原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值