后端服务器开发
文章平均质量分 53
说真的以前没有这么迫切想改变自己,总结后端服务开发的一些经验
ShaYQ
这个作者很懒,什么都没留下…
展开
-
【2023-03-04】QProcess启动进程后继承父进程fd导致的现场问题
在Linux系统上,父进程创建子进程时需要注意资源的继承,本场景中,socket文件描述符就是其中一个。原创 2023-03-04 23:04:45 · 781 阅读 · 0 评论 -
【2022-12-16】使用 fork-exec模型编写守护进程一个注意点
在编写 fork-exec模型的守护进程时,在while循环中,使用fork创建子进程,在pid=0的条件下,使用execvp函数替换当前程序;原创 2022-12-16 13:28:18 · 192 阅读 · 0 评论 -
2022-10-22 下载安装编译使用Google_Protobuf一篇到位
该库的介绍自行百度,项目中使用到的话,参考这篇文档;PS:本人编写的时候,也是第一次编译,请跟随我的脚步依次进行探索。期间可能会遇到多种多样的问题,我会分享我的解决方法和思路;原创 2022-10-25 17:13:58 · 2475 阅读 · 0 评论 -
2022-10-17 我帮你踩了libcurl接收json数据的一些坑
libcurl接收json数据时候的一些坑,以及对应的处理方法、代码;本文贴出了详细的排查跟踪过程;原创 2022-10-17 14:47:29 · 1140 阅读 · 0 评论 -
2022-09-13 分享rtpproxy中处理信号signal的代码片段
rtpproxy中对于signal的处理片段原创 2022-09-13 17:03:28 · 286 阅读 · 0 评论 -
2022-09-09 mysql数据库连接池的1.0实现
mysql数据库连接池1.0实现原创 2022-09-09 13:50:56 · 329 阅读 · 0 评论 -
2022-08-27 一个正则表达式处理RTSP鉴权的小例子
一个正则表达式处理RTSP鉴权的小例子demo原创 2022-08-27 15:39:00 · 255 阅读 · 0 评论 -
2022-08-23 Windows_iocp一般编程方法
演示IOCP编程的一般方法,希望对有的同学能起到帮助;原创 2022-08-23 17:29:45 · 481 阅读 · 0 评论 -
2022-08-12 Linux下epoll模型-高性能网络IO
本文结合代码和理论,将epoll的相关知识娓娓道来,希望对读者有用。同时对我个人也是总结和提高。原创 2022-08-12 16:20:37 · 349 阅读 · 0 评论 -
2022-08-01 回顾基础二叉树以及操作
基础二叉树操作原创 2022-08-01 17:45:58 · 112 阅读 · 0 评论 -
2022-07-22 回顾链表操作以及部分问题
回顾链表操作,以及(反转,查找公共节点,闭环等)原创 2022-07-22 16:30:15 · 174 阅读 · 0 评论 -
2022-07-21 回顾排序算法
回顾排序算法原创 2022-07-22 10:47:43 · 195 阅读 · 0 评论 -
2022-05-18 使用std::future解决std::thread的局限性(异步等待线程结束、获取一次性事件)
使用future解决一次性事件,等待线程异步结束原创 2022-05-18 10:08:58 · 689 阅读 · 0 评论 -
2022-05-17 惊呆了,居然发现还有人还不会写线程安全的队列~
mark给新手,线程安全队列原创 2022-05-17 09:56:58 · 191 阅读 · 0 评论 -
2022-05-15 周末无聊手写一份线程池代码
无聊手写一份简单的线程池代码原创 2022-05-15 22:40:54 · 348 阅读 · 0 评论 -
2022-05-13【webrtc应用】yangrtc/metaRTC开源库源码分析(四)
标题yangrtc/(又名metaRTC)源码分析(四)这一次,我们解决了一个通信系统中常见的问题。语音播放数据的延迟问题。项目场景:业务流程大致如下:yangrtc拉取OPUS流,解码存入队列之后;业务线程从队列取出数据,进行编码修改后丢入编码后队列;Play业务取出编码后数据进行消费。问题描述在使用yangrtc库,进行二次开发的过程中,出现了一个问题,语音数据随着“拉流时间持续时间越来越长”,播放端出现了延迟越来越大的情况?原因分析:当右侧的编码后队列,不停的膨胀,原创 2022-05-13 15:48:58 · 554 阅读 · 0 评论 -
Linux下QProcess不产生finished信号、waitforfinished阻塞超时【defunct进程】
项目场景:涉及Linux下的多进程编程,比较让人绕晕。初步以为,是由于在子进程中,又创建了子进程,导致的最后创建的子进程异常。问题描述使用fork函数,创建子进程A;A主要 调用execvp函数拉起QT主程序B;主程序B中调用QProcess::start函数调用进程C(ffmpeg的命令);B中connect进程C的finished信号,或者waitforfinished均失败;异常有:1. finished信号不触发; 2. ffmpeg转码明明结束了,进程却不推出; 3.原创 2022-04-28 22:25:56 · 3826 阅读 · 0 评论 -
【自勉-向后端架构师/音视频架构师出发】我的目标是星辰大海(4月)
向后端架构师/音视频架构师出发,我的目标是:星辰大海原创 2022-04-24 17:43:10 · 4847 阅读 · 0 评论 -
【2022-04-18】 浅谈由window异常处理方法转向Linux下的异常编程处理
后端服务器开发经验分享在开发Windows程序时我们在开发Windows服务器时,除了在开发阶段尽可能的处理掉“程序异常”时,经常会遇到程序在客户机上跑时,各种各种奇葩的未经处理的异常,导致我们的程序core dump; 可以看下, Windows下C++异常处理,也可以看下《Windows核心编程》中有专门一章对齐进行解释。这种情况下,必须要求服务器对常用的异常进行“捕捉”、“分析”、“过滤“、”处理”;根据经验,通常可做以下一些操作:忽略异常;执行异常处理代码后,局部恢复动作;程序进入异常结原创 2022-04-18 12:06:48 · 729 阅读 · 0 评论 -
【转载】服务器性能调优,这篇说的挺好,很多是设计之处就应考虑的问题
【转载】服务器性能调优,这篇说的挺好,很多是设计之处就应考虑的问题转载 2022-04-12 12:13:19 · 265 阅读 · 0 评论 -
2022-04-02 分享简单应用层心跳保活、判断设备离线的代码段
应用层心跳保活、判断设备离线的最简代码段。原创 2022-04-02 08:59:53 · 1216 阅读 · 0 评论 -
2021-09-18 编译nginx带http-flv-module模块的小结
nginx编译http-flv-module模块基于nginx-1.8.0编译带http-flv-module模块步骤方法;并打开nginx的debug日志登记,捕捉调试信息;文章目录nginx编译http-flv-module模块前言一、编译准备二、编译步骤1.引入库2.打开日志登记调整为debug总结前言记录几个细节一、编译准备1. nginx1.8.0代码2. http-flv-module-master源码;3. 将http-flv-module-master源码复制到原创 2021-09-18 11:11:13 · 439 阅读 · 0 评论 -
使用asio库封装的UDP收发数据类
如何使用asio封装的异步处理udp数据的服务类?文章目录前言一、asio是什么?二、如何使用?1.废话不多说直接上代码2.调用示例总结前言平时工作中会经常用到UDP收发数据,下面分享一个常用的基于asio接口的简单封装;一、asio是什么?asio是一个boost库中的一个组件,也可以单独引用该库,主要用于网络编程,具体大家可以百度详细说明。这篇文章,主要分享一种简单应用,启动一个UDP服务,接收对端数据,并且可以返回数据;二、如何使用?1.废话不多说直接上代码代码如下(示例):原创 2021-01-15 16:25:59 · 1587 阅读 · 0 评论 -
boost库中共享内存的使用
什么是共享内存共享内存是最快速的进程间通信机制。操作系统在几个进程的地址空间上映射一段内存,然后这几个进程可以在不需要调用操作系统函数的情况下在那段内存上进行读/写操作。但是,在进程读写共享内存时,我们需要一些同步机制。考虑一下服务端进程使用网络机制在同一台机器上发送一个HTML文件至客户端将会发生什么:服务端必须读取这个文件至内存,然后将其传至网络函数,这些网络函数拷贝那段内存至操作系统的内部内存。客户端使用那些网络函数从操作系统的内部内存拷贝数据至它自己的内存。如上所示,这里存在两次拷贝,一次转载 2020-12-22 17:26:25 · 2789 阅读 · 1 评论 -
加油啦~打工人~用智能指针解决内存泄漏的一种思考(忘记delete)
声明一个结构体,具有构造以及析构函数:typedef struct _File{ unsigned char *pData; int size; _File(int size) { std::cout<<"1111111111"<<endl; pData = new unsigned char[size]; memset(pData,0,size); } ~_File() { std::cout<<"2222222222"<<原创 2020-11-02 19:59:48 · 302 阅读 · 0 评论 -
boost库文本处理回顾20200908
// boost_test_appp2.cpp : 定义控制台应用程序的入口点。//#include "stdafx.h"#include <iostream>#include <string>#include "boost/lexical_cast.hpp"#include "boost/format.hpp"#include "boost/algorithm/string.hpp"using namespace boost;using namespace st原创 2020-09-08 10:59:02 · 139 阅读 · 0 评论 -
boost库智能指针回顾20200907
/* boost库中智能指针初探*/#include "stdafx.h"#define BOOST_DATA_TIME_SOURCE#include "boost/date_time/gregorian/gregorian.hpp"#include "boost/make_shared.hpp"#include "boost/smart_ptr.hpp"using namespace boost::gregorian;using namespace std;void operate原创 2020-09-07 17:11:39 · 98 阅读 · 0 评论