自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

weixin_43638873的博客

1014 福尔摩斯的约会 (20分)

  • 博客(397)
  • 资源 (3)
  • 问答 (8)
  • 收藏
  • 关注

原创 Failed to search for file: Cannot update read-only repo

今天在读《Linux就该这么学》并上机操作RedHat Linux 8。我明明已经是root权限了,我于是上网去找,但也没看到合适的解答。为什么会和书上的操作结果不一样。看来执行Linux指令时格式还是很重要的。

2024-11-03 10:36:15 65

转载 如何在Windows10/11上添加开机自启动

Startup是一个隐藏的文件夹,位于%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup。修改注册表可能会导致系统问题,因此在进行任何更改之前最好先备份注册表。打开Windows设置,导航到 “Apps”> “Startup”。右击它们,赋予或取消它们的自启动功能。让文件管理器保持打开状态。(4) 关闭注册表重启系统。

2024-11-02 10:08:02 33

转载 Github项目VideoPlayer分析(1)

这个项目看样子不是在Linux下开发的,先学学代码,理解思路。

2024-11-01 15:42:27 4

转载 OpenCV安装完毕后测试出错Could not find module FindOpenCV.cmake

你所看到的错误是,CMake无法找到一个名为“FindOpenCV.cmake”的文件,因为CMake本身并不包含这个文件。因此,你需要找到一个这样的文件并将其放置在CMake可以找到的位置。这应该就是为什么会出错的原因,因为我之前好几次安装OpenCV C++都是照着这个博客来的,并且之前都没出过问题。随后将它放在你的项目的某一个地方,并且调整CMAKE_MODULE_PATH以至于cmake能找到它。我今天在新装的Ubuntu20.04上参考博客。按照上述建议操作后,我又重新按照博客。

2024-10-31 17:23:49 9

转载 Ubuntu 24.04换源

请参考:

2024-10-20 22:12:39 88

转载 Github项目分析udp-image-streaming(9) —— 客户端

客户端代码为Client.cpp。

2024-10-20 12:45:56 16

转载 Github项目分析udp-image-streaming(8) —— 类UDPSocket的成员函数

生存时间(TTL)或跳数限制是一种机制,用于限制计算机或网络中数据的生存时间或生命周期。TTL可以作为计数器或时间戳附加或嵌入到数据中。一旦规定的事件计数或时间间隔到期,数据将被丢弃或重新验证。在计算机网络中,TTL可防止数据包无限循环。在计算应用程序中,TTL通常用于提高性能并管理数据缓存。2.私有成员函数void setBroadcast();函数setsockopt()负责操作套接字选项。分析类UDPSocket的各个成员函数。显然这个函数是要设置广播的。我等会再分析这个函数。

2024-10-20 10:46:02 17

转载 Github项目分析udp-image-streaming(8) —— 类UDPSocket

该类是CommunicatingSocket的派生类。

2024-10-20 09:38:18 13

转载 Github项目分析udp-image-streaming(7) —— 类TCPSocket及其成员函数

该类是CommunicatingSocket的派生类。

2024-10-20 09:18:02 13

转载 Github项目分析udp-image-streaming(6) —— 类CommunicatingSocket的成员

这里的::是干啥的?因为这个成员函数本身也叫connect,为了让标准库中建立连接的函数不被成员函数覆盖掉进而让编译器分不清而这么做的。getpeername()函数返回与socket连接的对等实体的地址,并将该地址存储在指向addr的缓冲区中。函数inet_ntoa将以网络字节序给定的互联网主机地址,转换成IPv4 点分十进制表示法字符串。ntohs函数将无符号的短整数从网络字节序转换成主机字节序。

2024-10-20 08:33:15 19

转载 C++的::

比如说,当局部和全局变量,或局部和全局函数在程序中拥有同样名称时,当我们调用该变量时,默认情况下只能访问内部或局部变量而不是全局变量。在这种情况下,全局变量或函数被隐藏。为了克服这种情况,我们使用作用域解析运算符获取程序隐藏的变量或函数。因此,我们使用作用域解析运算符去访问程序中隐藏的变量或函数。(1) 被用于访问程序中的隐藏变量或成员函数。(2) 利用作用域解析在类之外定义成员函数。(3) 访问类中的静态变量和静态函数。(4) 在继承时重写函数。

2024-10-19 08:29:57 16

转载 Github项目分析udp-image-streaming(5) —— 类CommunicatingSocket

该类的基类为Socket,同时它自己也有派生类。

2024-10-19 01:58:36 21

转载 Github项目分析udp-image-streaming(4) —— 类Socket的成员函数

函数gethostbyname为给定的主机名或主机IP地址返回一个struct hostent类型的数据,如果输入该函数的参数是IP地址,则不会执行查找操作并且gethostbyname()会将IP地址拷贝至h_name字段.getsockname函数返回套接字sockDesc所绑定的当前地址,并将该地址存储在addr指向的缓存区中。函数inet_ntoa将以网络字节序给定的互联网主机地址,转换成IPv4 点分十进制表示法字符串。看的出这个函数在做初始化的工作,用给定的地址和端口填充地址结构。

2024-10-19 01:37:55 18

转载 Github项目分析udp-image-streaming(3) —— 类Socket

将本地端口设置为特定端口,将本地地址设置为特定地址,如果你省略端口,一个随机端口将被选择。将指定协议下的指定服务解析为主机字节顺序对应的端口号。将本地端口设置为特定端口,将本地地址设置为任意接口。

2024-10-18 22:36:50 19

转载 关于memcpy函数的性能优化

参考:内存拷贝优化(1)-小内存拷贝优化比memcpy还要快的内存拷贝,了解一下?

2024-10-18 10:50:14 18

转载 bind( )函数(Linux C)

当一个套接字被创建后,它存在于一个名称空间中但是没有地址分配给它,bind()为套接字(用文件描述符sockfd表示)分配了由addr指明的地址,addrlen指明了addr所指向的地址结构的大小。bind()将套接字与本地地址联系起来(这就是为什么服务器端使用该函数,以至于客户端能够使用地址连接服务器)。connect被用于连接远程服务器地址,这就是为什么客户端使用connect函数。在SOCK_STREAM套接字可以接收连接之前,通常需要使用bind()函数为其分配一个本地地址。

2024-10-17 09:56:20 24

转载 Github项目分析udp-image-streaming(2) —— 类SocketException

这几个成员函数的声明末尾都使用了throw(),这显然和C++的异常机制有关。这是几年前的项目了,看样子当时作者用的是C++ 11之前的版本。但这个类毕竟不是这个项目的主体部分。

2024-10-17 02:40:29 23

转载 C++异常机制

就是把这部分代码放入try开头的函数块中,当异常情况在代码块之内发生时,会抛出一个异常,将控制权转交给异常处理程序。更老的代码可能包括动态异常规格,在C++中现在已经被启用,但依然支持,一个动态异常规格表现为一个函数声明附加一个throw修饰符。多个异常处理程序能够被连接起来,每一个都有一个不同的参数类型。异常机制提供了一种对程序中的异常情况做出反应的方式(比如运行时间错误),通过将控制权转移到称为“处理程序”的特殊函数中。如果在catch的参数列表中使用省略号,该处理程序将捕捉所有异常,不管类型是什么。

2024-10-17 01:16:11 17

转载 Github项目分析udp-image-streaming—— 项目中的类

(4) class TCPSocket : public CommunicatingSocket 用于和其他TCP套接字通信的TCP套接字。(3) class CommunicatingSocket : public Socket 能够连接、发送和接收的套接字。(6) class UDPSocket : public CommunicatingSocket UDP的套接字类。(5) class TCPServerSocket : public Socket 服务器的TCP套接字类。

2024-10-16 23:18:46 33

转载 Github项目分析: udp-image-streaming (1)

在C++中,exception类是一种用于展现异常的类,当程序中有错误或异常情况发生时将会有一个特殊对象被抛出,exception类允许你定义在代码中能够被抛出或捕获的自定义类型的异常。为了使用exception类,你需要定义一个从标准异常类std::exception中派生的一个类,该类是exception的派生类。先看看头文件PracticalSocket.h,这个头文件中定义了好几个类。分析这个项目主要是为了了解UDP传输视频数据,和OpenCV没有关系。表示基本通信端点的基类。

2024-10-16 14:45:42 25

转载 C++的友元和继承

函数duplicate是类Rectangle的友元,因此它能够访问类的成员width和height(它们都是私有),不过请注意,在声明duplicate函数时,以及在主函数中使用duplicate函数时,duplicate函数并未被认为是“Rectangle”类的成员。它只是能够访问“Rectangle”类的私有成员和受保护成员,但它并不是该类的成员。从其他派生出的类继承了基类中所有能访问的成员,这意味着如果基类包括一个成员A,我们从中派生一个类,并且派生类中有另一个成员叫B,派生类将包括成员A和成员B。

2024-10-16 13:26:38 23

转载 关于网卡RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller

我: What’s the speed of RTL8111/8168/8411 PCI Express Gigabit Ethernet Controller?在实际应用中,该控制器通常能够在网络条件和配置允许的情况下,提供接近1Gbps的可靠传输速度。

2024-10-14 15:04:35 36

转载 Github项目分析: socket_opencv(服务端)

公共成员函数SocketMatTransmissionServer::socketInit(int PORT)这里定义了类SocketMatTransmissionServer。

2024-10-12 01:52:41 31

转载 Github项目分析: socket_opencv(客户端)

公共成员函数SocketMatTransmissionClient::transmit(cv::Mat image)公共成员函数SocketMatTransmissionClient::socketDisconnect(void)看来之前还是小看了send()函数,这图像的数据量得有921600个字节了。这里有必要注意CV_8UC3,位深8bit,3通道。利用OpenCV和TCP传输视频数据。

2024-10-12 00:58:53 27

转载 getsockopt和setsockopt

getsockopt()和setsockopt()操纵被指向的套接字的选项,通过文件描述符server_sockfd。在操作套接字选项时,必须指定选项所在的级别以及选项的名称。对于getsockopt()函数,optlen是一个值结果参数,其初始值为指向optval缓冲区的大小,并在返回时被修改以指示实际返回值的大小。参数optval和optlen被用于访问setsockopt( )的选项值,对于getsockopt()函数,它们会标识一个缓冲区,用于返回请求的选项的值。如果要禁用该选项,则参数应为零。

2024-10-12 00:31:18 28

转载 C++中的公共和私有

所有的在Public下声明的数据成员将对所有人可用。在上述程序中,数据成员radius是公共的,所以我们被允许在类之外访问它。

2024-10-11 20:55:09 23

翻译 UDP的Linux C实现

不同于TCP,服务端不会等待客户端的连接,因此不会优先接收客户端的地址以便发送和接收数据。服务端的代码将服务器和客户端的地址信息保存在变量server_addr(一个sockaddr_in类型的结构体变量)。UDP不同于TCP,是一种无连接协议,在发送或接收数据之前不需要进行握手操作,这简化了执行。如果客户端和服务器都在recvfrom()上等待对方的消息,就会发生死锁。关闭套接字以结束通信。

2024-10-11 17:41:00 49

翻译 TCP Client-Server Implementation in C

套接字是一种允许一台或不同台计算机上的不同进程通信的结构,一个套接字允许我们通过在网络中收发数据的方式进行通信。一个客户端-服务端结构是计算机网络中的一个模型,服务端给客户端提供一些服务。一个套接字是两个运行在网络中的程序之间的双工通信连接的一个端点。所以只有一个客户端将会通信,其余的客户端就要等着通信结束了。(4) accept() —— 在客户端和服务端之间建立通信。(3) recv( )和send( ) —— 与对方通信。(5) recv()和send() —— 与对方通信。

2024-10-08 09:17:55 45

转载 TCP transfer File

in Linux , We can see :File Transfer using TCP Socket in CTCP Client-Server Implementation in C

2024-10-07 16:52:07 50

转载 Ubuntu 20.04 authentication error,随后系统崩溃

装上系统后再次启动,还出现了卡顿,强制关机后再启动,还好没有出问题。我怀疑之前3次的崩溃和软件源有关,之前是既用了清华源也用了阿里源。最近两天我的新装的Ubuntu系统总是遇到奇怪的事情。我便强制关机,结果系统就崩溃了。整个过程顺利,没有出现异常。好了,开始准备重装系统。

2024-10-06 13:56:22 148

翻译 操作系统的分页机制

基于这样的事实,我们在内存中有8个不连续的页框可用,并且分页机制提供了在不同地方存储进程的灵活性。逻辑地址是CPU为每个页生成的地址,而物理地址是页框的实际地址,是页将被存储的地方。进程中的一页被存储在主存的一个页框中,这些页会被存储在内存中不同的位置,但是优先级将总是能找到连续的页框。让我们假设下主存大小16KB,页框的大小是1KB,因此主存将被分成16个页框的集合,每个页框1KB。只有当被需要时,进程中的页面被送入主存。起初,所有的页框都是空的,因此进程的页将以连续的方式被存入。

2024-10-02 00:23:27 65

转载 [IncreaseDataAcqrOne]: Ring buffer full!

给出的大小与2的幂绑定起来,是页的大小的倍数。在用户空间这边,通过被提出的接口,一个ring buffer总是能和一个文件描述符关联起来,以至于第一步将是打开将要连接缓冲区的对象(比如一个设备、一个文件或一个管道)。这样的案例在多线程的操作系统中非常常见。换句话说,在使用perf工具第一次访问用户空间的缓存区页时,一个页错误的数据中断异常发生了,内核趁机将页映射到进程的VMA。环形缓存区通常有两个指向元素的标志,这个标志之间距离的范围从0到缓存区中全体元素的总数,双标志的使用意味着队列的长度可以从0到满。

2024-10-01 14:11:01 46

原创 long long转换为char数组

【代码】long long转换为char数组。

2024-09-30 15:02:32 136

转载 *** stack smashing detected ***: terminated

(4) 确定gdb期望在哪里找到源代码,并进行相应的调整。一是,将(或使用符号链接)源代码移动到/build/glibc-KM3i_a/glibc-2.23目录下(或使其看起来位于该目录下)。记住这个名字 - 它可能是类似于 /opt/src/glibc-2.23 的路径。(2) 如果以前没有做过的话,就准备包系统一边下载和处理源码包。以上我抄来的这些建议是针对Linux C的,我还是要试试。然后我在步骤2中的说明可能已经过时了;修改sendImage函数,运行成功!因此,gdb 期望源代码位于。

2024-09-25 14:35:46 107

原创 strlen函数不适合unsigned char数组

换成sizeof就好了。

2024-09-24 20:48:41 388

转载 关于Github项目SCD-ImgServer的分析(1)

本项目的目的是创建一个存储在文件服务器系统上的大型图像或文件的数据库。在数据库中,可以存储表,其中包含传输文件的信息,例如文件名、文件路径、大小等。此外,将SCDImgClient类嵌入到应用程序中,将能够与图像服务器进行上传/下载/删除文件的通信,无需担心客户端实现的细节:简单、快速且可靠。SCD图像服务器,是一种轻量快速图像服务器,允许你传送大型图像(HD/Full HD)或通用文件,并且没有使用诸如HTTP和FTP之类的标准协议,该服务器使用一种非常简单的应用层协议,允许一次性传输内容。

2024-09-24 16:10:29 35

转载 98 ../sysdeps/x86_64/multiarch/strcpy-ssse3.S: No such file or directory.

今天在写程序时出现了Segmentation Fault.

2024-09-24 11:40:00 33

原创 C++ Primer Plus笔记: 2024.09.20

4.auto_ptr模板以及C++新增的unique_ptr可帮助程序员自动完成释放工作。该函数返回一个指向临时变量(newguy)的引用,函数运行完毕后它将不复存在。1.在自定义函数的形参列表中使用引用,可以节约时间和内存。6.继承就是将一个类的功能传递给另一个类的语言特性。5.程序如果引用已经释放的内存,可能导致段错误。2.返回引用的函数实际上是被引用的变量的别名。

2024-09-20 01:22:54 334

原创 C++ Primer Plus笔记: 2024.09.07

2.常规函数: 执行到函数调用指令时,程序将在函数调用后立即存储该函数的内存地址。并将函数参数复制到堆栈(为此保留的内存块),跳到标记函数起点的内存单元,执行函数代码(也许还需要将返回值放入寄存器中),然后跳回到地址被保存的指令处。运行程序时,操作系统将这些指令载入计算机内存中,因此每条指令都有特定的内存地址,计算机随后就会逐步执行这些指令。6.引用变量的主要用途是用作函数的形参,通过将引用作为形参,函数将使用原始数据而不是副本。5.如果使用C语言的宏执行了类似函数的功能,则应该转换成C++的内联函数。

2024-09-17 18:54:27 290

转载 How to Stream RTSP using FFmpeg?

确保您要流式传输的媒体源可访问且受 FFmpeg 支持。这可以是视频文件、网络摄像头或任何其他多媒体源。在这篇指南中,我们将带你通过简单直接地基本步骤利用FFmpeg生成RTSP流。(1) 把 input.mp4 替换成你的视频路径。(2) 调整 -b:v 参数来设置视频比特率。(3) 有根据的修改RTSP显示器地址和端口。

2024-09-11 14:24:08 69

VNC-Viewer-6.21.406-Linux-x64.deb

可用于控制树梅派的远程桌面软件的VNC Viewer安装包

2021-06-07

农业无线传感器Json数据解析.zip

这个是上一个JsonApp的升级版,用于解析无线传感器的Json数据并以表格形式显示,解析的json文件名为data.json,我已经放在了这个压缩包里,压缩包里还有一个压缩包,叫做JsonApp.zip,里面有我的源码

2021-05-26

JsonApp.zip

自己用Qt写的Json解析程序

2021-05-24

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

TA关注的人

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