自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(1979)
  • 问答 (2)
  • 收藏
  • 关注

转载 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 5

转载 VMWARE-虚拟机与主机间的关系

NAT模式是最简单的实现虚拟机上网的方式,你可以这样理解:Vhost访问网络的所有数据都是由主机提供的,vhost并不真实存在于网络中,主机与网络中的任何机器都不能查看和访问到Vhost的存在。我们可以理解为Vbox在主机中模拟出一张专供虚拟机使用的网卡,所有虚拟机都是连接到该网卡上的,我们可以通过设置这张网卡来实现上网及其他很多功能,比如(网卡共享、网卡。笔记本没插网线时: 主机的“本地连接”有红叉的,虚拟机可以访问主机,虚拟机不可以访问互联网,在做了端口映射后,主机可以访问虚拟机上的服务(如数据库)。

2025-12-03 19:37:25 6

转载 Linux 安全文件传输完全指南:sftp 与 scp 的深度解析引言

在 Linux 系统管理中,文件传输是日常工作中不可或缺的一部分。然而,在不安全的网络中传输文件可能会带来严重的安全风险。OpenSSH 套件提供了多种安全文件传输工具,其中sftp和scp是最常用的两种。本文将深入探讨这些工具的使用方法、安全性考量以及最佳实践。SFTPSCP(Secure Copy)也是 OpenSSH 套件的一部分,它使用 SSH 协议进行安全的文件传输。SCP 命令语法简单,长期以来被系统管理员广泛使用。优先使用 SFTP:功能丰富、安全性高、交互友好避免使用 SCP。

2025-12-03 17:51:42 6

转载 Windows 10上开启路由转发及添加路由

将 HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\IPEnableRoute设为1。将 Routing and Remote Access 服务的启动类型更改为自动并启动服务。注意:实验环境下主机B两个接口没有网关。完成之后,ping测试即可。

2025-12-03 17:48:09 14

转载 利用netsh命令实现端口映射(端口转发)的功能(netsh命令仅在windows系统下可用,文章后面附linux端口转发)

如果你希望在两个远程主机之间进行端口转发,可以使用SSH的端口转发功能。在Linux中,你可以使用一些不同的工具和方法来进行端口转发,具体取决于你的需求和环境。表示要将规则添加到 PREROUTING 链中,这是一个在数据包进入路由之前处理的链,通常用于进行端口转发。这将在本地主机上创建一个监听端口8888的代理,所有传入的连接将被转发到目标IP的80端口。这将在本地IP的本地端口上监听连接,并将它们转发到目标IP的目标端口。: 这个部分指定了要匹配的目标端口,即传入连接的目标端口为80。

2025-12-02 16:43:00 8

转载 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 8

转载 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 14

转载 虚拟机VMware和宿主机连接[通俗易懂]

如果有什么错误或问题欢迎私聊评论指正!未完,待续。发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/171613.html原文链接:https://javaforall.cn虚拟机VMware和宿主机连接[通俗易懂]-腾讯云开发者社区-腾讯云。

2025-11-28 12:40:18 22

转载 dhclient 命令详解

动态主机配置协议客户端。②dhclient命令的作用:使用动态主机配置协议动态的配置网络接口的网络参数,也支持BOOTP协议。③DHCP客户端 dhclient 提供了一种使用动态主机配置协议 和 BOOTP 协议配置一个或多个网络接口的方法。如果这些协议失败,则通过静态分配地址来配置。④动态主机配置协议DHCP(Dynamic Host Configuration Protocol)是一种网络管理协议,用于集中对用户IP地址进行动态管理和配置。

2025-11-28 12:38:05 20

转载 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 27

转载 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 19

转载 解决vscode C/C++ Advanced Lint的具体操作步骤

VSCode C/C++ Advanced Lint是一款专为C/C++项目开发者设计的代码静态分析工具。它结合了多种静态分析工具,如clang-tidy、cppcheck和PVS-Studio,提供了全面的代码检查和错误诊断功能。该工具可以在开发过程中自动检查代码,并提示潜在的问题和改进建议。

2025-11-25 11:17:46 31

转载 vscode中嵌入cppcheck进行静态检查,包含插件使用方法

2 使用misra 2012进行检查。

2025-11-25 11:16:43 28

转载 CS:理解编程中 lint是什么意思

在计算机科学与技术(尤其是编程领域)中,​​(或 ​​)是一种用于检查代码潜在问题、风格不一致或不符合编码规范的工具。它的名称源于早期 Unix 系统中的一个工具lint(1979年),最初用于 C 语言代码的静态分析。

2025-11-25 11:15:04 12

转载 什么是Lint工具?何时需要使用Lint工具?

类似地,由计算机科学家斯蒂芬·约翰逊(Stephen C. Johnson)编写的Lint命令就像一个干衣机中的棉絮陷阱,因为它在不影响整块布的情况下捕获了多余的“纤维”。但是,如果您使用的是编译语言或开发的是复杂的嵌入式系统,那么Linter并不能满足您的一切需求。后续的Linter和类似Lint的工具不仅仅关注样式和格式,还通过查找更广泛的问题扩展了功能,例如未解决的合并冲突、已弃用的函数以及使用不安全的语言功能。请记住,Linter会根据其了解的规则分析您的代码,找出其中的风格和软件缺陷。

2025-11-25 11:14:14 10

转载 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 16

转载 电脑开机出现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 312

转载 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 78

转载 MQ系列12:如何保证消息顺序性

消息的有序性在很多业务场景中占有很重要的位置。比如购物场景,需要按照 创建订单 --> 订单付款 --> 完成订单 顺序执行。又比如出行场景,接单 --> 接送到达目的地 --> 付款 --> 完成订单。这种是严格按照顺序执行的,这样的顺序消费才不会出问题,而且各个订单之间是互相独立和并行执行的。所以,在MQ中,如何稳定地保证顺序性消息处理,是一个不可避免的话题。

2025-11-13 13:15:44 48

转载 MQTT协议介绍与C++服务端客户端实现

MQTT(Message Queuing Telemetry Transport)是一种轻量级的消息发布/订阅协议,设计用于低带宽、高延迟、不稳定的网络环境,广泛应用于物联网(IoT)设备间的通信。其基于客户端-服务器架构,通常使用TCP/IP协议作为传输层协议。MQTT协议轻量级:头部开销小,适合低带宽环境。支持QoS(服务质量)QoS 0:最多一次传递。QoS 1:至少一次传递。QoS 2:只有一次传递。发布/订阅模式:客户端可以发布消息,也可以订阅消息,支持多对多通信。保持连接。

2025-11-13 13:13:46 53

转载 MQTT 主题的写法(强烈不推荐以/开头,会形成空层级)

理解并熟练运用主题和通配符是构建高效、灵活 MQTT 应用的基础。务必根据你的具体业务场景仔细设计主题命名空间。好的,我们来详细讲解 MQTT 主题的写法、规则以及通配符的使用。这是 MQTT 协议中非常核心和灵活的部分。符合特定模式的主题,是 MQTT 订阅功能强大的关键。通配符允许订阅者订阅。

2025-11-13 13:09:20 38

转载 交叉编译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 27

转载 VMware,NAT模式,如何让外网主机访问虚拟机?

在下,外网无法直接访问虚拟机,但可以通过将宿主机的某个端口映射到虚拟机的指定端口。808080NAT模式VMnet8NAT设置添加808080保存设置并重启虚拟机。808080按Win + R,输入wf.msc回车,打开“高级安全 Windows 防火墙”。在现有规则列表中搜索8080或相关描述(如“VM Port Forwarding”),确认状态为,且操作是若输出结果中包含8080且,则表示端口已放行。若显示,则端口可访问。说明:curl。

2025-11-13 11:02:41 73

转载 全网最权威唯一值得推荐的《C/C++框架和库》

关于C++框架、库和资源的一些汇总列表,内容包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。关于C++

2025-11-13 10:54:18 67

转载 paho编译教程

会在根目录下生成build文件夹,里面存放着编译结果。普通编译没什么说的,直接编译就好,无需额外参数。当使用到openssl时(也就是开启了。我在这里用的是1.3.9版本。),请指定openssl路径。的意思是,这个库启用了。,不要理解为是静态库(时,请根据需求指定库。

2025-11-12 12:50:42 23

转载 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 78

转载 CAN发送和接收数据

在此示例中,仅使用到 cansend 和 candump,但软件包中还提供了许多其他的工具。要实现这种配置,请在同一 CAN 总线上连接两个设备。然后,从一个节点发送数据,并在另一节点上接收数据。在内部环回测试模式下,FDCAN将发送的消息作为接收消息进行处理。此选项用于硬件自检(无需在 CAN 总线上连接外部 CAN 节点)。在开始通信之前,必须在每块板上配置并启用 SocketCAN 接口。目的 本文介绍如何使用 can-utils [1 ]包在 SocketCAN 接口上发送/接收数据。

2025-11-07 17:10:38 32

转载 ARP协议及其具体过程

同一子网内的通信:设备A和设备B直接通过交换机进行通信,ARP请求和数据传输都在同一子网内完成,不需要路由器的介入。跨子网的通信:设备A需要通过路由器将数据包转发到目标子网,路由器负责确定下一跳地址并进行数据包的转发。同一子网内的通信:设备A直接通过ARP解析目的设备B的MAC地址,并封装数据包发送给设备B。跨子网的通信:设备A通过ARP解析默认路由器的MAC地址,将数据包发送给路由器。路由器根据路由表确定下一跳设备,并将数据包转发到目标子网中的设备C。

2025-10-30 18:21:02 97

转载 关于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 113

转载 对等网络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 33

转载 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 57

转载 基于OPC UA协议的SIMATIC PLC通信实现

参考代码 OPC UA SIMATIC(PLC通信) www.youwenfan.com/contentcni/62434.html。

2025-09-29 14:51:38 309

转载 OPC UA 协议分析

到这里,相信你对OPC UA协议已经有所了解,在分析OPC UA 协议时,通过Wireshark抓包就能看到协议内部实现 browse 请求的细节,对照官方基金会提高的白皮书第四篇,就能理解内部数据交互的各个细节,所以只要左手Wireshark,右手OPC UA白皮书,即可轻松实现协议入门。安全头后面总是跟者序列头。序列头确保通过通道发送的每条消息的第一个加密块将以不同的数据开始,序列头包含一个数字以标识数据块,它所在的消息体(如编码的服务消息)不能放进单个块,因此不得不拆分为多个块使用。

2025-09-29 14:50:21 324

转载 Transport Layer Interface 考古

正因此,我在维护 lsof 的时候,经常看到 TCP/TPI state,不明所以,才会研究 TPI 的历史,然后找到 TLI,才知道除了 Sockets 以外,还有一套 Unix 上的网络 API。现在网络编程主要采用的是 BSD Sockets API,但实际上当年还有另一套 API,就是 TLI(Transport Layer Interface),后来 BSD Sockets 胜出,进入了 POSIX 标准,TLI 后面也标准化为了 XTI,现在可以在部分 Unix 系统中找到。

2025-09-10 14:13:08 189

转载 Netlink简介

Netlink是基于socket的用户空间进程和内核态进程通信的方式。用途有两个,内核为用户态程序提供了很多接口(如route, firewall, ipsec等),直接在用户空间连接相应的socket,就可以获得广播信息。自己编写内核模块,需要和用户空间通信,比/proc,设备驱动方式更加灵活。网络间通信(网络上的两个进程)用: Network socket同一主机内进程间通信(用户态): Unix domain socket用户态进程和内核态进程通信: Netlink socket。

2025-09-10 13:42:21 119

转载 Netlink Socket通信机制详解与实战指南

Netlink是Linux内核提供的一种IPC(进程间通信)机制,它允许用户空间进程与内核空间模块进行双向通信。这一机制特别适合于需要高效处理网络、内核数据或事件的场景。Netlink基于AF_NETLINK地址族,它使用标准的socket API进行操作,因此熟悉socket编程的开发者可以快速上手。Netlink支持多播消息,使得一个进程可以向多个目标进程广播消息,这在传统的UNIX domain socket中是不支持的。

2025-09-10 13:40:51 278

转载 原始套接字 IP_HDRINCL

第一个参数:协议族 AF_INET 代表TCP/IP协议第二个参数:SOCKET类型第三个参数:协议类型注意:@如果指定协议为0时,原始套接字可以接收内核传递给原始套接字的任何IP数据包,且只有超级用户才可以创建原始套接字。@当需要编写自己的IP数据包首部时,可以在原始套接字上设置套接字选项IP_HDRINCL.在不设置这个选项的情况下,IP协议自动填充IP数据包的首部。在将一个IP数据包传送给原始套接字之前,内核需要选择匹配的原始套接字1.数据包的协议域必须与接收原始套接字的协议类型匹配。

2025-09-08 16:15:11 113

转载 浅谈linux下原始套接字 SOCK_RAW 的内幕及其应用

真正从网卡进来的数据是完整的以太网帧,底层用sk_buff 数据结构描述,最终进入接收缓冲区recv buffer,而我们应用层调用read / recv /recvfrom 从接收缓冲区拷贝数据到应用层提供的buffer,对一般的套接字,如SOCK_STREAM, SOCK_DGRAM 来说,此时缓冲区只有user data,其他各层的头部已经被去除,而对于SOCK_RAW 来说是IP head + IP payload,当然也可以是arp/rarp 包,甚至是完整的帧(加上MAC头)。

2025-09-08 16:11:29 131

转载 Linux网络编程- 原始套接字(Raw Socket)

原始套接字(Raw Socket)提供了一种机制,允许应用程序直接访问底层传输协议,绕过操作系统提供的传输层接口。这种套接字通常用于实现新的协议或对现有协议进行低级别的操作。以下是对原始套接字的详细介绍:定义与用途:创建:特权:工作方式:用途与限制:注意事项:跨平台的差异:总的来说,原始套接字是一个非常强大的工具,但也需要谨慎使用。正确使用它需要对网络协议有深入的理解,而滥用它可能导致网络问题或被视为恶意活动。创建链路层的原始套接字允许我们直接与链路层设备(例如以太网适配器)交互,从而可以发送和接收链路层帧

2025-09-08 16:09:40 178

转载 多旋翼飞行器振动机理分析和减振设计

这样的滤波器设计简单,运算速度快,但存在两个缺陷。观察图 6,可以看出在表 2的材料属性下,旋翼形变较大的某个模态,其固有频率接近电机转速,说明旋翼将会产生较大振动,这将增加噪声并降低旋翼的气动效率,并可能在气动弹性系统中形成正反馈,增大系统的振动。由于数据采集系统的采集速率有限,每次飞行过程只对一个位置的振动情况进行测量,考虑到四旋翼飞行器的对称性,只对其中一支机臂上的五个位置(Arm1到Arm5)和机架中心进行测量,机架中心分别在不加隔振器(Board1)和加隔振器(Board2)的情况下测量。

2025-09-06 17:22:12 270

空空如也

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

TA关注的人

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