自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(27)
  • 资源 (1)
  • 收藏
  • 关注

原创 fdbus4.2 timer的使用

文章介绍了fdbus中的定时器实现,主要包括三个类:CSysLoopTimer、CBaseLoopTimer和CMethodLoopTimer。CSysLoopTimer是基础定时器类,提供enable()和config()方法管理定时器状态和时间参数,定时器按到期时间排序。CBaseLoopTimer继承前者,简化了定时器使能/禁用接口,并区分单次/重复定时模式。CMethodLoopTimer进一步封装,允许直接绑定类成员函数作为定时回调。关键机制包括定时器列表管理、重复触发标志处理和回调执行流程。

2025-07-24 21:00:00 487

原创 [FDBUS 4.2]fdbus消息发送失败后的流程处理

本文梳理了fdbus消息发送失败后的处理流程。消息以CFdbMessage封装并通过CBaseJob队列处理,发送失败达到重试上限后会设置错误标志位。CFdEventLoop据此标志位触发CSysFdWatch删除,导致CFdbSession析构。若客户端设置了重连标志,则重新向name_server请求服务端地址并建立连接,完成自动重连机制。整个流程实现了消息发送失败后的自动恢复处理。

2025-07-20 17:00:00 234

原创 [FDBUS4.2] watcher的使用

本文分析了fdbus框架中watcher机制的工作原理,重点介绍了三种watcher的实现方式。首先阐述了CFdbContext线程通过poll()方法触发消息收发的机制,详细描述了pollfds的构建过程。然后分别分析了三种核心watcher:CServerSocket负责服务端绑定和监听,CFdbSession处理消息收发和回调触发,CNotifyFdWatch用于任务队列通知。文章通过时序图和代码片段展示了watcher的初始化、事件注册和处理流程,特别是flags标志位在poll触发中的关键作用,以

2025-07-18 21:00:00 949

原创 [FDBUS 4.2]CFdEventLoop和CThreadEventLoop类的功能

本文分析了CFdEventLoop和CThreadEventLoop两种事件循环的实现机制及其关联关系。CFdEventLoop由FDB_CONTEXT创建,通过poll方法触发I/O处理,包含数据接收(CFdbSession)和发送(CNotifyFdWatch)两种处理流程。CThreadEventLoop由工作线程创建,通过轮询dispatch()处理任务队列和定时器。两种事件循环通过异步消息进行协作,其中客户端回调方法从CFdEventLoop迁移到工作线程的CThreadEventLoop执行,避

2025-07-17 20:00:00 902

原创 QNX端bridge网桥转发功能

摘要 本文探讨了在QNX系统中限制ARP Announcement报文传播范围的方法。通过建立网桥(bridge)配置,验证了不同网桥之间的报文隔离效果。实验采用Ubuntu主机连接QNX系统,通过tcpdump抓包分析发现:同一网桥内的网卡(emac0、vp0_la0、vp3_la0)会泛洪接收ARP报文,而不同网桥的网卡(vp4_la0)则不会收到该报文。结果表明,利用QNX的网桥功能可以有效控制ARP报文的传播范围,实现不同网桥间的报文隔离。

2025-07-16 20:00:00 280

原创 MSS、MTU、TSO的关系

摘要: MTU(最大传输单元)指数据链路层允许的最大数据包大小(以太网默认1500字节),影响IP层数据传输是否需要分片。MSS(最大报文段长度)是TCP协议确定的应用层最大数据分段,计算方式为MTU减去IP和TCP首部(通常1460字节)。TCP连接时会协商双方MSS最小值作为传输标准。TSO(TCP分段卸载)技术将数据分段任务交由网卡处理,降低CPU负载。可通过ifconfig或ethtool命令查看和调整MTU、MSS及TSO开关状态,优化网络性能。

2025-07-15 20:00:00 974

原创 Android以太网mDNS协议

MDNS全称Multicast DNSMDNS协议是一种在局域网内实现设备和服务自动发现的协议。具体来说,它允许设备在无需依赖中央服务器或配置文件的情况下,通过组播地址发送和接收DNS查询和响应,从而发现局域网中的其他设备和服务。MDNS协议基于DNS(协议,但使用组播地址来进行通信,因此能够在局域网中快速且高效地实现服务发现。当设备启动时,它会发送一个MDNS查询,询问局域网中是否有其他设备或服务可用。如果其他设备知道所需的名称,它们会回复一个MDNS响应,提供相应的IP地址。通过这种方式,

2025-07-12 18:00:00 661

原创 Windows系统配置vlan网卡

Windows系统配置vlan网卡

2025-07-11 18:00:00 1811

原创 ACK和Seq的计数规则

Ack和Seq的计数规则

2025-07-10 18:00:00 689

原创 arp老化时间

arp老化时间

2025-07-09 18:00:00 855

原创 android端堆栈打印工具开发及使用

Android native层堆栈打印工具开发

2025-07-08 20:00:00 225

原创 pf防火墙调试及验证方法

pf防火墙调试及验证方法

2025-07-07 18:00:00 635

原创 IP分片介绍及如何禁用IP分片

IP分片介绍及禁用方法

2025-07-06 13:40:39 1216

原创 TCP keep-alive机制

keep-alive顾名思义是tcp连接保持连接活跃状态的一种机制,在QNX系统中, 有3个参数与之相关,分别是:net.inet.tcp.keepidle=3。

2024-03-13 15:54:18 781

原创 strcpy()函数崩溃解决

2、char * 类型的value一开始指向了一块字符串常量(“test”),本质上指向的是字符串常量第一个字符的地址,并未分配内存,因此调用带内存操作的strcpy()方法时会崩溃。3、char [50] value将value定义为长度为50的数组,本质上给value分配了一段连续分配的地址。今天在运行如下代码时出现了崩溃现象,定位到时strcpy()函数崩溃。1、strcpy()函数只对已分配内存的字符串变量有效。

2024-03-05 16:44:15 545

原创 Eclipse Cyclone DDS在Android环境下编译

Eclipse Cyclone DDS在Android环境下编译

2023-09-08 17:09:05 1039 1

原创 以太网基础知识——PHY,MAC,MII,switch

在以太网开发中,常常会听到一些专业名词,例如PHY,MAC,MII,switch,下面是解释。

2023-09-03 14:10:02 6577

原创 使用ssh远程登录VirtualBox虚拟机

使用ssh远程登录VirtualBox虚拟机

2023-07-15 16:18:29 3860 1

原创 iperf2工具的使用

iperf2工具测试网络性能

2023-07-15 15:39:34 1726 1

原创 使用python提取pidin打印的CPU消耗值

使用python提取pidin打印的CPU消耗值

2023-05-05 13:48:45 257

原创 Wireshark的Window,Calculated window size,Window size scaling factor

3.所以window size value表示报文的值,calculated window size表示放大后的值,也就是实际可用的值,由于TCP的头部窗口字段只有16bit,最多表示64k(65535),为了表示更大的窗口,使用了可选的放大倍数。1.在TCP三次握手的时候在SYN或SYN,ACK包中,通知options可选信息,告知对方将使用放大倍数。之后抓包发现,首次握手连接的SYN包的win大小依旧是65535(默认值),之后的包中的win会变大。然后通过点击包的详情,发现如下。

2023-03-23 14:40:27 4357 2

原创 函数中局部变量的返回

函数中局部变量的返回

2022-06-05 16:05:06 322

原创 安卓HAL开发指南

安卓HAL开发指南1、介绍HIDL的全称是HAL interface definition language(硬件抽象层接口定义语言),在此之前Android 有AIDL,架构在Android binder 之上,用来定义Android 基于Binder通信的Client 与Service之间的接口。HIDL也是类似的作用,只不过定义的是Android Framework与Android HAL实现之间的接口。2、实现方式2.1 旧版传统HAL层Android 7.x和更早的版本中,hal

2022-05-25 17:06:34 13487 1

原创 wireshark的简单使用

1、wireshark介绍(1)、使用wireshark打开一个pcap文件时,可以讲time改变成实际时间(2)、数据过滤<1>、点击表头即可按照此条件排序(默认按照No.排序)<2>、使用过滤器使用Ctrl + F 快捷键,选择字符串,即可搜索(3)、一些小tips<1>、左侧实线表示一次会话的不同阶段<2>、√ 表示对应的请求/响应<3>、数据包大致结构链路层网络层传输层<4>、左侧小圆

2022-05-12 21:49:26 7366

原创 TCP/IP的层次结构及数据封装过程

1.什么是协议分层??拿打电话举个栗子:当我们在打电话的时候不同的地区有不同的语言,而不同地方的人进行通话时我们就形成了同一种语言–普通话这就是我们的语言协议;而在通信设备层,我们进行打电话的过程中通信设备读取数据就会有电话协议,实现相互交流;因此协议分层实质就是一种协议封装;对服务,接口,协议进行明确的划分,形成标准,便于使用;在这个例子中, 我们的协议只有两层;但是实际的网络通信会更加复杂, 需要分更多的层次;分层最大的好处在于 “封装” 。2.IOS七层参考模型:(1)什么是IOS七层参考模

2022-05-09 23:38:04 7863

原创 在gerrit上cherry pick多笔提交到一个仓库中

我们的要求是在dvr_service仓库上从其他分支cherry pick 两笔提交到release/b03chn_rel_sop_3_nobo分支这两笔提交分别如图所示如图所示,B02-5746的提交顺序在V35-68464前面所以我们先cherry pick B02-5746再cherry pick V35-68464点击CHERRY PICK按钮后出现了代码冲突这是正常的,因为是在同一笔仓库中提交了2笔,而前一笔还未入库,后一笔必然与前一笔冲突解决方法是将后一笔的base co

2022-04-26 00:31:22 4172 2

原创 Oracle VM VirtualBox虚拟机安装教程

文章目录前言一、Oracle VM VirtualBox在本文中的用途二、安装步骤1.准备2.使用Oracle VM VirtualBox设置虚拟机配置总结前言Oracle VM VirtualBox 是全球广受欢迎的开源跨平台虚拟化软件。使用该软件,开发人员能够在一台设备上运行多个操作系统,更快地交付代码。IT 团队和解决方案提供者可以使用 VirtualBox 来降低运营成本,缩短在本地和云端安全部署应用所需的时间。一、Oracle VM VirtualBox在本文中的用途用于编译gstre

2022-04-09 17:06:21 22320 2

音乐播放器在线搜索功能

AndroidStudio2.3.1,实现音乐播放器初始化时展示一些歌曲 输入关键字搜索,未出结果前显示正在加载。。。

2018-10-08

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除