- 博客(93)
- 收藏
- 关注

原创 Linux网络编程-socket到epoll
socket()函数查看文件描述符的上限:ulimit -a,修改方法:ulimit -HSn 2000IPV4和IPV6区别socket取值从3开始主机字节序与网络字节序大端字节序:将高序字节存放在起始位置小端字节序:将低序字节存放在起始位置网络字节序:采用大端字节序,与cpu,操作系统无关主机字节序:不同机器主机字节序不相同,与cpu设计有关htons(),ntohs(),htonl(),ntohl():host to network short long地址和端口:
2021-06-12 11:33:54
378

原创 socket网络通信实现与优化
多进程通信多进程通信的优化将socket通信的客户端以及服务端进行封装,让代码更清晰高效解决了僵尸进程的问题,防止子进程占用过多的内存资源关闭多余的socket,防止系统打开的文件描述符过多:ulimit -a程序退出资源的释放服务端程序#include "../_freecplus.h"CTcpServer TcpServer; // 创建服务端对象。// 程序退出时调用的函数 void FathEXIT(int sig); void ChldEXIT(int sig);/
2021-06-04 22:09:10
950

原创 Linux多线程详解
linux多线程详解P2.多线程基本知识查看线程:ps -xH ,查看进程:ps -ef |grep 进程名main函数为主进程/主线程,创建的线程为子线程线程资源是共享的,使用相同的地址共享全局变量和对象不能在子线程中使用exit,否则整个进程会退出,一般使用pthread_exit(0)子线程退出尽量不要使用return,否则会报错,可以写为 return (void *)0;代码示例:#include<stdio.h>#include <pthread.h&
2021-05-26 22:46:44
2175
3

原创 Linux线程同步(互斥锁,条件变量,信号量,自旋锁,读写锁)
1.互斥锁初始化锁int pthread_mutex_init(pthread_mutex_t *restrict mutex,const pthread_mutexattr_t *restrict attr);阻塞加锁非阻塞加锁解锁销毁,释放资源== 互斥锁存在优先唤醒的问题==2.互斥锁实现数据库连接池...
2021-05-19 15:55:36
460

原创 数据结构与算法
数据结构-6-图你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学习如何使用Markdown编辑器, 可以仔细阅读这篇文章,了解一下Markdown的基本语法知识。新的改变我们对Markdown编辑器进行了一些功能拓展与语法支持,除了标准的Markdown编辑器功能,我们增加了如下几点新功能,帮助你用它写博客:全新的界面设计 ,将会带来全新的写作体验;在创作中心设置你喜爱的代码高亮样式,Markdown 将代码片显示选择的高亮样式 进行展示;增加了 图片拖拽 功能,你
2021-04-28 13:56:39
239
原创 unknow module in qt:script
错误解决这种问题是qt缺少script模块,安装即可。找到 MaintenanceTool.exe文件,双击运行,增加script模块即可。
2024-06-04 14:11:16
532
原创 Nginx搭建Rtmp流媒体服务,并使用Ffmpeg推流
本项目在开发板上使用nginx搭建流媒体服务,利用ffmpeg进行推流,在pc上使用vlc media进行拉流播放。
2023-10-04 20:29:31
715
原创 Qt QImage 图像处理(翻转,灰度,亮度)代码实现
该程序利用QImage类对图片像素进行操作,实现图像的翻转,转灰度,增加亮度的效果。
2022-07-31 19:48:56
3758
2
原创 Qt layout下遍历删除子控件
场景1:layout下的控件删除背景:工作需要,动态的增加一组组件和删除一组组件。如下示意,点击delete,将QVBoxLayout下的四个button进行删除。布局代码如下:MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow){ ui->setupUi(this); QPushButton* btn = new QPushButto
2022-05-30 21:50:18
3584
原创 QImage与unsigned char*的相互转换
文章结构1.源码地址2.代码分析3.显示效果本文实现:QImage可以直接对像素进行操作,因此利用QT的QImage将jpg图片转换为unsigned char*,并生成raw文件。同时将生成的raw数据文件利用QImage加载出来,并显示在界面Label中。1.源码地址Gitee项目地址2.代码分析源图片信息通过deepCopyImageData函数将图片数据转化为unsigned char*的数据data,利用SaveBytesToFile函数将data数据进行保存。b
2022-05-15 17:28:08
3578
原创 VS2022安装qt插件
1.安装插件vs2022 qt vsaddin插件已经更新,可以下载安装,链接:https://download.qt.io/development_releases/vsaddin/2.添加QT version3.更改ui默认打开方式4.运行效果
2022-05-14 11:58:43
10252
5
原创 QT 信号和槽的应用
1. 信号和槽信号和槽的前提条件:自定义类要想利用信号和槽机制,需要继承QObject类。同时在类的开始定义宏Q_OBJECT信号和槽的声明形式:-private slots:-signals:信号只需要声明,不需要对其进行实现。信号没有返回值,只能是void类型。信号和槽的3种写法:2.案例实现工作中需要对一个图片数据文件进行读解析,需要把每一帧数据显示出来,当读出每一帧数据就发送信号,每一帧数据类型是char*类型;需要在窗口中加一个控件label,label需要实时显示帧
2022-05-14 11:17:45
434
原创 C++左值(左值引用),右值(右值引用),std::move的测试
示例对左值,右值作为函数参数进行传递进行的调用,以及std::move的使用对构造函数进行调用的测试。测试示例#include <utility> // std::move#include <iostream> // std::cout#include <vector> // std::vector#include <string> class Myclass{public: explicit My.
2022-05-07 22:20:33
522
原创 Muduo库Base模块引入主程序进行使用
muduo库分为base和net两个模块。本文章主要讲解我们自己编写代码想引入Muduo的base库进行使用的技巧,net库同理。
2022-04-10 12:04:38
443
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人