- 博客(1986)
- 问答 (2)
- 收藏
- 关注
转载 NNG协议
NNG是 nanomsg 的继任版本,而 nanomsg 则是流行的 ZMQ (一个简单好用的传输层,像框架一样的一个 socket library)的 C 重写版。NNG 将通信使用的协议和传输分离,同一个协议可以工作在不同的传输层上,类似与 TCP/IP 的应用层和传输层的分层,同时接口上屏蔽了底层细节,统一用字符串 URL 来描述传输模式。这样当使用场景修改时,可以通过简单修改 URL 来实现适应,极具灵活性。
2025-12-13 22:40:03
58
1
转载 NNG 开源项目教程
NNG的源代码目录结构如下:├── CMakeLists.txt # 主要的CMake构建脚本├── include # 公共头文件│ └── nng # NNG的核心头文件├── src # 源码目录│ ├── aio # 异步I/O接口│ ├── core # 核心功能│ ├── msg # 消息处理│ ├── protocols # 各种消息协议实现│ │ ├── pair # 对等协议│ │ ├── pubsub # 发布/订阅协议。
2025-12-13 22:35:16
32
1
转载 qt为什么转向用cmake放弃qmake
Qt 转向 CMake 不是“折腾”,而是“进化”。对 Qt 公司:降低维护成本,拥抱开源生态对开发者:获得更强大、更标准、更未来的构建体验虽然 CMake 初学曲线略陡,但它是现代 C++ 开发的必备技能,投资回报极高。└── 简单但局限 → 无法满足现代需求↓qbs (2013)└── 技术先进但生态失败 → 被社区抛弃↓└── 行业标准 → Qt 全面拥抱问题答案qbs 是什么?Qt 推出的新一代构建系统,试图替代 qmakeqbs 和 qmake 关系?
2025-12-13 22:30:27
22
转载 【Linux】Linux系统上升级到最新的CMake版本
在Linux系统上升级到最新的CMake版本(如最新版本为4.0.2),可以按照以下清晰有序的步骤操作。以下指南假设您使用的是基于/Ubuntu或Red Hat的发行版(如CentOS/RHEL),并提供多种安装方式(二进制安装、源码编译、包管理器等)。
2025-12-09 15:51:23
93
转载 开源推荐——Kitware系列之Kitware简述
公司致力于开发高质量的开源软件和提供相关的软件开发服务,其主要领域包括计算机视觉、医学成像、科学可视化、地理信息系统(GIS)等。Kitware公司是一家致力于开源软件开发和软件开发服务的科技公司,其产品和开源项目在计算机视觉、医学成像、科学可视化等领域得到了广泛应用。除了开源软件开发之外,Kitware公司还提供软件开发服务,包括软件开发、咨询、培训等。:一个开源的可视化和分析软件,用于处理大规模数据集。:一个用于医学图像数据管理和分析的开源软件。:一个用于医学图像分析和可视化的开源软件。
2025-12-09 15:28:39
31
转载 使用 Visual Studio Code 调试代码
在您按下 Enter 后,表达式会被求值,并且调试控制台 REPL 会在您键入时显示建议。本文介绍了 VS Code 的调试功能,以及如何在 VS Code 中开始调试。运行时有内置的调试支持,可以调试 JavaScript、TypeScript 或任何其他被转译为 JavaScript 的语言。断点是一个特殊的标记,它会在特定点暂停您的代码执行,以便您可以在该点检查应用程序的状态。如果您的调试会话涉及多个目标(例如,一个客户端和一个服务器),调试工具栏会显示会话列表并允许您在它们之间切换。
2025-12-08 14:35:22
37
转载 vscode调试技巧
在现代前端与全栈开发的日常工作中,代码调试是不可或缺的一环,而一款优秀的调试工具能够显著提升开发效率,减少问题定位的时间成本。Visual Studio Code(简称 VSCode)作为一款备受开发者喜爱的轻量化编辑器,不仅提供了丰富的插件生态和高效的代码编辑体验,更以其强大的调试功能成为开发者工作流中不可或缺的一部分无论是调试 Node.js 后端代码、前端浏览器代码,还是更复杂的容器化微服务系统,VSCode 都提供了灵活的调试支持。
2025-12-08 14:34:00
15
转载 Windows环境使用VSCode 调试Linux环境C/C++代码
由于Window上编译Linux系统下的代码,因此可将Linux看作是另外一台电脑,不管是不是虚拟机,容器之类的,或者说Windows 10 上通过Windows商店安装的Ubuntu系统,只要能通过ssh远程连接,就可以通过VSCode来远程调试,因此VSCode需要安装远程插件,在插件搜索框搜索Remote SSH,将下图中选中的插件都安装上,其他相应插件会自动安装。command,这里因为是要执行make命令,因此这里就写make,其实也跟上面一样,命令行上执行什么这里就写什么;
2025-12-04 19:02:11
32
转载 VMWARE-虚拟机与主机间的关系
NAT模式是最简单的实现虚拟机上网的方式,你可以这样理解:Vhost访问网络的所有数据都是由主机提供的,vhost并不真实存在于网络中,主机与网络中的任何机器都不能查看和访问到Vhost的存在。我们可以理解为Vbox在主机中模拟出一张专供虚拟机使用的网卡,所有虚拟机都是连接到该网卡上的,我们可以通过设置这张网卡来实现上网及其他很多功能,比如(网卡共享、网卡。笔记本没插网线时: 主机的“本地连接”有红叉的,虚拟机可以访问主机,虚拟机不可以访问互联网,在做了端口映射后,主机可以访问虚拟机上的服务(如数据库)。
2025-12-03 19:37:25
28
转载 Linux 安全文件传输完全指南:sftp 与 scp 的深度解析引言
在 Linux 系统管理中,文件传输是日常工作中不可或缺的一部分。然而,在不安全的网络中传输文件可能会带来严重的安全风险。OpenSSH 套件提供了多种安全文件传输工具,其中sftp和scp是最常用的两种。本文将深入探讨这些工具的使用方法、安全性考量以及最佳实践。SFTPSCP(Secure Copy)也是 OpenSSH 套件的一部分,它使用 SSH 协议进行安全的文件传输。SCP 命令语法简单,长期以来被系统管理员广泛使用。优先使用 SFTP:功能丰富、安全性高、交互友好避免使用 SCP。
2025-12-03 17:51:42
46
转载 Windows 10上开启路由转发及添加路由
将 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\IPEnableRoute设为1。将 Routing and Remote Access 服务的启动类型更改为自动并启动服务。注意:实验环境下主机B两个接口没有网关。完成之后,ping测试即可。
2025-12-03 17:48:09
107
转载 利用netsh命令实现端口映射(端口转发)的功能(netsh命令仅在windows系统下可用,文章后面附linux端口转发)
如果你希望在两个远程主机之间进行端口转发,可以使用SSH的端口转发功能。在Linux中,你可以使用一些不同的工具和方法来进行端口转发,具体取决于你的需求和环境。表示要将规则添加到 PREROUTING 链中,这是一个在数据包进入路由之前处理的链,通常用于进行端口转发。这将在本地主机上创建一个监听端口8888的代理,所有传入的连接将被转发到目标IP的80端口。这将在本地IP的本地端口上监听连接,并将它们转发到目标IP的目标端口。: 这个部分指定了要匹配的目标端口,即传入连接的目标端口为80。
2025-12-02 16:43:00
34
转载 netsh interface portproxy add v4tov4 listenaddress=0.0.0.0 listenport=7890 connectaddress=127.0.0.1
是 Windows 系统中一个强大的工具,能够帮助实现端口转发功能,适用于本地服务代理、跨主机通信、网络穿透等多种场景。通过掌握其命令结构、工作原理和实际应用方法,我们可以。(Port Forwarding)的命令。通过这个命令,可以将一个本地端口上的流量转发到另一个地址和端口上。这种技术常用于网络调试、代理服务、跨主机通信等场景。正如一句话所说:“网络是无形的桥梁,而端口转发则是桥上的指路牌。,就能为复杂的网络环境搭建清晰的通信路径。地解决网络通信中的问题。服务器IP:7890。开发机IP:7890。
2025-12-02 16:05:25
27
转载 Linux ip命令完全指南:网络管理的首选工具
在现代Linux系统中,ip命令已经取代了传统的ifconfig、route等命令,成为网络配置和故障排除的首选工具。ip命令是iproute2软件包的一部分,提供了统一的接口来管理Linux系统的网络功能。4. IP地址管理(address对象)4. IP地址管理(address对象)3. 网络接口管理(link对象)6. 邻居表管理(neigh对象)3. 网络接口管理(link对象)6. 邻居表管理(neigh对象)5. 路由管理(route对象)5. 路由管理(route对象)
2025-12-01 12:51:49
38
转载 虚拟机VMware和宿主机连接[通俗易懂]
如果有什么错误或问题欢迎私聊评论指正!未完,待续。发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/171613.html原文链接:https://javaforall.cn虚拟机VMware和宿主机连接[通俗易懂]-腾讯云开发者社区-腾讯云。
2025-11-28 12:40:18
60
转载 dhclient 命令详解
动态主机配置协议客户端。②dhclient命令的作用:使用动态主机配置协议动态的配置网络接口的网络参数,也支持BOOTP协议。③DHCP客户端 dhclient 提供了一种使用动态主机配置协议 和 BOOTP 协议配置一个或多个网络接口的方法。如果这些协议失败,则通过静态分配地址来配置。④动态主机配置协议DHCP(Dynamic Host Configuration Protocol)是一种网络管理协议,用于集中对用户IP地址进行动态管理和配置。
2025-11-28 12:38:05
39
转载 VSCode系列 - 如何用VSCode搭建C++高效开发环境(1)
VSCode是笔者用过的最好用的开发工具,没有之一。笔者14年的码龄生涯中,先后用过Eclipse、 IntelliJ IDEA、 WebStorm、 PyCharm、 Visual Studio(2010/2013/2015)、 NetBeans、 Sublime Text等,但自从用VSCode之后,就再没换过其他工具,一直用到现在有5年多的时间。
2025-11-25 11:31:45
38
转载 VSCode系列 - 如何用VSCode搭建C++高效开发环境(2)
在VSCode下进行C/C++开发,C/C++插件是最重要、功能最强大、也是最复杂的一个插件。我们从C/C++: 代码智能提示、补全、跳转等功能,集成了插件的几乎所有功能。Formatting: 代码格式化器,可对代码进行自动格式化。: 通过代码(注释)生成文档,定义注释的样式,集成Doxygen等工具。: 代码分析器,对代码的错误、风格等进行检查,集成了Clang-Tidy。Debugging: Debug调试器。: 资源管理器。: 其他杂项配置。进行C/C++开发,C/C++
2025-11-25 11:19:14
38
转载 解决vscode C/C++ Advanced Lint的具体操作步骤
VSCode C/C++ Advanced Lint是一款专为C/C++项目开发者设计的代码静态分析工具。它结合了多种静态分析工具,如clang-tidy、cppcheck和PVS-Studio,提供了全面的代码检查和错误诊断功能。该工具可以在开发过程中自动检查代码,并提示潜在的问题和改进建议。
2025-11-25 11:17:46
63
转载 CS:理解编程中 lint是什么意思
在计算机科学与技术(尤其是编程领域)中,(或 )是一种用于检查代码潜在问题、风格不一致或不符合编码规范的工具。它的名称源于早期 Unix 系统中的一个工具lint(1979年),最初用于 C 语言代码的静态分析。
2025-11-25 11:15:04
50
转载 什么是Lint工具?何时需要使用Lint工具?
类似地,由计算机科学家斯蒂芬·约翰逊(Stephen C. Johnson)编写的Lint命令就像一个干衣机中的棉絮陷阱,因为它在不影响整块布的情况下捕获了多余的“纤维”。但是,如果您使用的是编译语言或开发的是复杂的嵌入式系统,那么Linter并不能满足您的一切需求。后续的Linter和类似Lint的工具不仅仅关注样式和格式,还通过查找更广泛的问题扩展了功能,例如未解决的合并冲突、已弃用的函数以及使用不安全的语言功能。请记住,Linter会根据其了解的规则分析您的代码,找出其中的风格和软件缺陷。
2025-11-25 11:14:14
23
转载 OOM问题排查,Linux进程突然被杀掉(OOM killer)
Linux 内核有个机制叫OOM killer(Out Of Memory killer),该机制会监控那些占用内存过大,尤其是瞬间占用内存很快的进程,然后防止内存耗尽而自动把该进程杀掉。内核检测到系统内存不足、挑选并杀掉某个进程的过程可以参考内核源代码linux/mm/oom_kill.c,当系统内存不足的时候,out_of_memory()被触发,然后调用select_bad_process()选择一个”bad”进程杀掉。如何判断和选择一个”bad进程呢?
2025-11-25 10:04:58
33
转载 电脑开机出现no boot disk has been detected or the disk has failed解决方法
也可以按键盘上的F10保存,一般情况是f10,有些机器按F4保存,然后在弹出的窗口选YES即可,如图所示;:1、开机的时候迅速按F2键或delete键或F1键或Esc键进入BIOS(不同品牌的电脑进BIOS的按键可能不同),我这台机器是按del进入bios,进入bios后我们切换到Boot选项,检查Boot Option #1第一启动项第一启动项是否为硬盘,如下图所示;出现这个提示一般如果是刚动了电脑或是动了硬盘,硬盘没接好,我们首先检测硬盘的和主板上的数据线是否松动,我们尝试重插一下,如果重插了可以在。
2025-11-17 17:24:38
502
转载 IoT -- (七)MQTT协议详解
经过以上的比较,我们可以得出如下结论:MQTT基于异步发布/订阅的实现解耦了消息发布者和订阅者,基于二进制的实现节省了存储空间及流量,同时MQTT拥有更好的消息处理机制,可以替代TCP Socket一部分应用场景。从事嵌入式开发工作的人都应该知道LwIP,LwIP是一套用于嵌入式系统的开放源代码TCP/IP协议栈,LwIP在保证嵌入式产品拥有完整的TCP/IP功能的同时,又能保证协议栈对处理器资源的有限消耗,其运行一般仅需要几十KB的RAM和40KB左右的ROM。CoAP也是一个能与MQTT竞争的协议。
2025-11-13 13:18:02
91
转载 MQ系列12:如何保证消息顺序性
消息的有序性在很多业务场景中占有很重要的位置。比如购物场景,需要按照 创建订单 --> 订单付款 --> 完成订单 顺序执行。又比如出行场景,接单 --> 接送到达目的地 --> 付款 --> 完成订单。这种是严格按照顺序执行的,这样的顺序消费才不会出问题,而且各个订单之间是互相独立和并行执行的。所以,在MQ中,如何稳定地保证顺序性消息处理,是一个不可避免的话题。
2025-11-13 13:15:44
57
转载 MQTT协议介绍与C++服务端客户端实现
MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息发布/订阅协议,设计用于低带宽、高延迟、不稳定的网络环境,广泛应用于物联网(IoT)设备间的通信。其基于客户端-服务器架构,通常使用TCP/IP协议作为传输层协议。MQTT协议轻量级:头部开销小,适合低带宽环境。支持QoS(服务质量)QoS 0:最多一次传递。QoS 1:至少一次传递。QoS 2:只有一次传递。发布/订阅模式:客户端可以发布消息,也可以订阅消息,支持多对多通信。保持连接。
2025-11-13 13:13:46
71
转载 MQTT 主题的写法(强烈不推荐以/开头,会形成空层级)
理解并熟练运用主题和通配符是构建高效、灵活 MQTT 应用的基础。务必根据你的具体业务场景仔细设计主题命名空间。好的,我们来详细讲解 MQTT 主题的写法、规则以及通配符的使用。这是 MQTT 协议中非常核心和灵活的部分。符合特定模式的主题,是 MQTT 订阅功能强大的关键。通配符允许订阅者订阅。
2025-11-13 13:09:20
50
转载 交叉编译paho.mqtt.c和paho.mqtt.cpp(MQTT客户端)
本文详细介绍了在ARM32平台上交叉编译Eclipse Paho MQTT C/C++客户端库的过程。通过配置交叉编译工具链,分别编译paho.mqtt.cpp(1.5.2版本)和paho.mqtt.c(1.3.14版本)两个库,并启用了SSL支持。文章提供了完整的编译命令、环境配置以及常见问题解决方法,包括版本对齐要求、依赖库缺失问题等。同时给出了基于这两个库的MQTT订阅和发布示例代码,演示了如何在ARM开发板上运行MQTT客户端程序进行消息通信。整个过程涵盖了从源码下载、交叉编译、安装部署到实际应用的
2025-11-13 11:31:29
41
转载 VMware,NAT模式,如何让外网主机访问虚拟机?
在下,外网无法直接访问虚拟机,但可以通过将宿主机的某个端口映射到虚拟机的指定端口。808080NAT模式VMnet8NAT设置添加808080保存设置并重启虚拟机。808080按Win + R,输入wf.msc回车,打开“高级安全 Windows 防火墙”。在现有规则列表中搜索8080或相关描述(如“VM Port Forwarding”),确认状态为,且操作是若输出结果中包含8080且,则表示端口已放行。若显示,则端口可访问。说明:curl。
2025-11-13 11:02:41
116
转载 全网最权威唯一值得推荐的《C/C++框架和库》
关于C++框架、库和资源的一些汇总列表,内容包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。关于C++
2025-11-13 10:54:18
83
转载 paho编译教程
会在根目录下生成build文件夹,里面存放着编译结果。普通编译没什么说的,直接编译就好,无需额外参数。当使用到openssl时(也就是开启了。我在这里用的是1.3.9版本。),请指定openssl路径。的意思是,这个库启用了。,不要理解为是静态库(时,请根据需求指定库。
2025-11-12 12:50:42
32
转载 vcan配置与使用
vcan(Virtual CAN)是一种虚拟CAN接口,它是Linux内核中的一个虚拟网络接口驱动程序。vcan接口模拟了CAN总线的行为,但没有实际的硬件依赖。这使得它非常适用于开发、测试和调试CAN网络协议和应用程序,而不需要实际的CAN硬件。配置vcan接口。编写发送CAN消息的C程序sender.c。编写接收CAN消息的C程序receiver.c。编译并运行两个程序。使用candump工具实时查看传输的CAN消息。
2025-11-07 17:14:54
105
转载 CAN发送和接收数据
在此示例中,仅使用到 cansend 和 candump,但软件包中还提供了许多其他的工具。要实现这种配置,请在同一 CAN 总线上连接两个设备。然后,从一个节点发送数据,并在另一节点上接收数据。在内部环回测试模式下,FDCAN将发送的消息作为接收消息进行处理。此选项用于硬件自检(无需在 CAN 总线上连接外部 CAN 节点)。在开始通信之前,必须在每块板上配置并启用 SocketCAN 接口。目的 本文介绍如何使用 can-utils [1 ]包在 SocketCAN 接口上发送/接收数据。
2025-11-07 17:10:38
44
转载 ARP协议及其具体过程
同一子网内的通信:设备A和设备B直接通过交换机进行通信,ARP请求和数据传输都在同一子网内完成,不需要路由器的介入。跨子网的通信:设备A需要通过路由器将数据包转发到目标子网,路由器负责确定下一跳地址并进行数据包的转发。同一子网内的通信:设备A直接通过ARP解析目的设备B的MAC地址,并封装数据包发送给设备B。跨子网的通信:设备A通过ARP解析默认路由器的MAC地址,将数据包发送给路由器。路由器根据路由表确定下一跳设备,并将数据包转发到目标子网中的设备C。
2025-10-30 18:21:02
119
转载 关于IP:239.255.255.250:1900(UPNP协议)
我们找到"root"的"deviceType"是"urn:schemas-upnp-org:device:InternetGatewayDevice:1"的"device" childNode ,获得这个"device"的"deviceList",记为A。找到A的"deviceType"是"urn:schemas-upnp-org:device:WANDevice:1"的"device" childNode ,获得这个"device"的"deviceList",记为B。接下来我们要从里面获得我们要的消息。
2025-10-30 17:31:26
190
转载 对等网络P2P(Peer to Peer)的概念与思想
对等网络(P2P)的概念与思想我想可能没有任何一个产业像IT产业一样,每天都不断地产生新的名词,然后在IT里面由几个简单词组成的IT名词,却不断引来大家的误解,我想P2P就是这些词中的一个了。每当我向身边的同学和师弟提起P2P时,他们都异口同声地说“我知道 ,点对点嘛”。更多人会认为P2P就是point-to-point的简称。我简直不敢相信,P2P竟引来如此多的误解。我不知道为什么P2P会被人说成点对点,可能是数据链路层有个Point-to-Point protocol(PPP协议)吧,因而太误解P2P为
2025-10-30 17:30:11
51
转载 DHCP介绍(DHCP交互过程以及相关抓包分析)
DHCP 简介DHCP的报文种类以及作用DHCP工作流程DHCP报文字段格式DHCP状态DHCP抓包报文分析说明Protocol)动态主机配置协议,前身是BOOTP协议。在大型局域网中,需要给很多主机配置地址信息,如果采用传统手工配置(累死),效率太低,因此采用此协议可以很方便的给主机配置各种地址信息,例如IP地址,SubMask、网关地址、DNS等等。下面进行简单介绍,下面所述中Client值得就是DHCP Client,Server指的是DHCP Server。
2025-10-30 17:29:03
84
转载 基于OPC UA协议的SIMATIC PLC通信实现
参考代码 OPC UA SIMATIC(PLC通信) www.youwenfan.com/contentcni/62434.html。
2025-09-29 14:51:38
338
转载 OPC UA 协议分析
到这里,相信你对OPC UA协议已经有所了解,在分析OPC UA 协议时,通过Wireshark抓包就能看到协议内部实现 browse 请求的细节,对照官方基金会提高的白皮书第四篇,就能理解内部数据交互的各个细节,所以只要左手Wireshark,右手OPC UA白皮书,即可轻松实现协议入门。安全头后面总是跟者序列头。序列头确保通过通道发送的每条消息的第一个加密块将以不同的数据开始,序列头包含一个数字以标识数据块,它所在的消息体(如编码的服务消息)不能放进单个块,因此不得不拆分为多个块使用。
2025-09-29 14:50:21
356
空空如也
cnds的c-ide好使么,我怎么一直发生错误啊,哪位大神指点一下!
2017-05-17
关于c++ 文件流打开后,判断存在和是否打开的区别?
2017-05-10
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅