c/c++
文章平均质量分 78
fripy
这个作者很懒,什么都没留下…
展开
-
关于netfilter的学习记录
只是一些网站记录,说不定哪天也连不过去了。。https://www.cnblogs.com/x_wukong/p/5923767.html洞悉linux下的Netfilter&iptables:什么是Netfilter?https://www.cnblogs.com/virusolf/p/5297573.html深入Linux网络核心堆栈(对于netfilt...原创 2019-10-29 16:11:49 · 197 阅读 · 0 评论 -
CentOS关于内核模块开发环境总结
一、ubuntu 直接自带内核开发环境??我试过,编写内核模块代码可以直接make通过,但CentOS就不一样了(我测试的是CentOS 7),make会提示没有文件目录错误。二、CentOS默认不带内核开发环境需要自己手动安装:(1)uname –r 查看当前内核版本(2)yum list | grep kernel 查看当前可以直接用yum更新的内核相关包@anacon...原创 2019-10-29 16:01:07 · 2954 阅读 · 0 评论 -
Linux 中如何快速查看 C 库函数的头文件、库文件
Linux 中如何快速查看 C 库函数的头文件以及相应的函数信息使用man帮助或grep1)man命令 函数名,则能够打印该函数的所有说明,当然这个函数必须是Linux-C本身就有的函数。例如 man 3 ntohs2)grep "keyword" /usr/include/*.h |grep "typedef"以上方法可以查找关键字为keyword的结构体、类型、函数原型的定义,...转载 2019-06-12 16:28:52 · 6553 阅读 · 1 评论 -
音视频同步实现
本文主要描述了如何以音频的播放时长为基准,将视频同步到音频上以实现视音频的同步播放的。主要有以下几个方面的内容视音频同步的简单介绍 DTS 和 PTS 计算视频中Frame的显示时间 获取Audio clock(audio的播放时长) 将视频同步到音频上,实现视音频同步播放视音频同步简单介绍一般来说,视频同步指的是视频和音频同步,也就是说播放的声音要和当前显示的画面保持一致。想象...转载 2019-06-03 17:50:19 · 1593 阅读 · 0 评论 -
vscode编辑远程linux系统下c/c++代码实现代码补全
本文说明当前的使用场景是在windows上远程编辑linux开发服务器下的代码,要一个可以代码补全的编辑器而已,并不使用它来编译运行windows程序。想用vscode作为IDE的,如果是开发windows程序建议直接下载vs。本文主要介绍vscode在编写c/c++程序时候的设置方法,我结合了官方以及网上一些文章里的方法,经过自己的反复测试改进,基本已经用的比较舒服了。最后强调下,v...转载 2019-06-18 11:21:33 · 8094 阅读 · 0 评论 -
服务器开发(C++篇)高手是如何炼成的?——书目整理
同样是某位大神整理的书目,记录下...数据结构与算法算法导论大话数据结构现代操作系统程序员的自我修养:链接、装载与库 推荐计算机网络:自顶向下方法TCP/IP网络编程 推荐Linux高性能服务器编程Linux多线程服务器编程libevent开源网络库TCP/IP详解 不建议直接读Linux系统编程Linux内核设计与实现汇编语言老“码”识途:从机器码到框架的系统逆向...原创 2019-09-03 09:58:21 · 225 阅读 · 0 评论 -
网络编程几问,能回答几个?
网络编程面试中可能会被问到的问题——1、Nagle算法 和 SO_NODELAY选项2、CORK算法3、Lingle选项4、SO_REUSEADDR / SO_REUSEPORT5、SO_KEEPALIVE / TCP_KEEPIDLE / TCP_KEEPINTVL / TCP_KEEPCNT6、tcp/ip协议栈层次关系 四层7、tcp三次握手四次挥手细节 time_wait ...原创 2019-09-05 10:33:43 · 158 阅读 · 0 评论 -
完成端口使用总结
完成端口的设置和处理,循环方式。 overlapped io重叠的使用,内存申请等问题。 完成端口的send和recv的缓冲区的重复利用和如何释放的问题。 keepalived,windows的调用和linux的调用方式(这两个系统都有这个机制),但是默认设置不一样,并且设置的api接口也不一样。自己也可以根据这个原理定制自己的心跳机制(用settimer或线程进行定时发送心跳)。 rec...原创 2019-09-06 16:29:05 · 307 阅读 · 0 评论 -
srs开源流媒体服务器中gop_cash是如何实现的?
要解决几个问题: (1)srs服务器gop_cache如何打开和关闭? (2)gop_cache缓存时间如何设置? (3)服务器如何知道某个msg是gop_cache的关键帧,并且清理前面的帧。 (4)audio和video的gop_cache如何对应起来(同步)? (5)客户端连入的时候如何把gop_cache发给客户端。 (6)gop...原创 2019-05-17 11:47:21 · 1578 阅读 · 0 评论 -
如何实现带宽速度测试的功能?看看srs开源服务器的实现
一、总结如下几点:通过send函数和recv函数计算发送和接收的总字节数,并通过发送和接收的时间段来计算收发比特率。简单的计算为totalsizes/totaltimeduration。 如何封装发送的数据也是有讲究的,可以自定义一个增量算法,让每次发送的测试数据自动增长。 每个包发送的时间间隔是否需要设置?这个要看客户端实现,如果是select模型,可以不设置,直到socket出错后重置...原创 2019-05-17 09:37:34 · 1121 阅读 · 0 评论 -
flutter-desktop-embedding windows平台编译运行问题汇总
flutter大家都知道是google推出的跨平台UI平台,主要用于android/ios的界面开发,其也兼容windows linux mac等平台。本篇记录搭建windows桌面平台遇到的问题和解决方案。该项目地址为:https://github.com/google/flutter-desktop-embedding多搞事情,总是会有所收获的,吐槽一下,国内访问谷歌代码服务器会失败的...原创 2019-03-28 16:53:43 · 5552 阅读 · 3 评论 -
《c++ primer》第二章学习笔记
1.char 和wchar_t有什么区别,分别应有到什么场合?解释:它们都是字符类型。char字长为8位,wchar_t字节为16位;wchar_t常用于扩展字符集,比如汉字、日语等。wchar_t可以用wprintf()函数显示。#include using namespace std;int main (){ printf("Hello QueYouPeng原创 2012-02-18 19:32:27 · 541 阅读 · 0 评论 -
开源跨平台窗口 GuiLite 和 QT 下载安装记录
1、GuiLite--宣称6000行代码解决Windows+Linux+Mac+Android+vr+嵌入式 等的跨平台窗口解决方案。Github的项目地址:https://github.com/idea4good/GuiLite下载研究了一下,其主要思想结构是,先申请一块跟显示器(或者目标窗口)相同大小的内存,然后把图像、文字、动画等内容,像素级别的绘制到内存当中,合成一张渲染后的图像(内存...原创 2019-01-17 10:03:50 · 3057 阅读 · 0 评论 -
编译开源软件kaidan+qt for visual studio 2015踩的坑
编译开源软件kaidan+qt for visual studio 2015踩的坑Kaidan是我浏览xmpp官方网站的时候发现的一个开源软件,xmpp官网关于客户端的介绍有如下截图kandan是基于xmpp协议的IM开源软件客户端,从界面上看起来还不错,之前做过im开发,一个机灵就想下载来看看。其官方地址为:https://git.kaidan.im/kaidan/kaidan/...原创 2019-01-16 18:22:38 · 1005 阅读 · 0 评论 -
windows环境编译Opencv4.0.0问题总结
主要说明三个问题:1、静态库和动态库的编译方法2、world版和分开编译的版本说明(cmake选项)3、出现的错误解决方案。 (1)使用静态库,出现连接错误(使用动态库比较简单,用到哪个就直接关联哪个lib即可)需要关联的静态库有如下:zlib.libippicvmt.libippiw.libittnotify.libopencv_world400.li...原创 2019-01-17 09:19:33 · 2268 阅读 · 3 评论 -
关于sqlite3速度慢的原因解决方法
在对sqlite3 insert into 等操作时速度比较慢。 原因是因为它每次插入数据都需要访问一次磁盘,打开磁盘的速度大家可想而知,如果对数据库进行大量的操作,那么速度回很慢。 解决办法用事务的形式提交:因为我们开始事务后,进行的大量操作的语句都保存在内存中,当提交时才全部写入数据库,此时,数据库文件也就只用打开一次。 在进行大量的操作前使用如下语句:...原创 2019-02-26 14:49:47 · 17763 阅读 · 0 评论 -
recv返回-1后errno和WSAGetLastError的错误处理
首先errno函数是linux系统里面的,windows系统对应的要用WSAGetLastError函数。 官方详解如下链接:https://msdn.microsoft.com/zh-cn/windows/ms737828(v=vs.95) Error codes set by Windows Sockets are not made available throug...原创 2019-02-27 11:20:51 · 3916 阅读 · 0 评论 -
IPMSG(飞秋)源代码调试笔记
1、怎么发送普通消息?进行socket异步select选择,每个消息都是一个Msg包,并且分配一个senddlg为其发送消息。消息协议可以参考其他文档,消息统一封装成文本的方式发送,封装方式为[属性1:属性2:...:消息扩展消息],属性和属性之间和消息之间用冒号隔开,消息和扩展消息用消息结构体的exOffset标记隔开,发送的内容可以协定解密方式。2、使用udp协议发送,如何确定消息是否...原创 2019-03-19 16:26:03 · 3311 阅读 · 0 评论 -
动态dll接口定义的常用规范和载入方法
一、动态DLL中导出头文件编写规范案例如下:#ifdef MY_EXPORTS#define MY_API __declspec(dllexport)#else#define MY_API __declspec(dllimport)#endifclass IXXCallback //定义某功能对象接口回调函数{public: virtual ~IXXCallback() {}...原创 2019-04-07 14:20:17 · 1291 阅读 · 0 评论 -
类中的常量(高质量C++编程指南--5.4 摘录)
有时我们希望某些常量只在类中有效。由于#define定义的宏常量是全局的,不能达到目的,于是想当然地觉得应该用const修饰数据成员来实现。const数据成员的确是存在的,但其含义却不是我们所期望的。const数据成员只在某个对象生存期内是常量,而对于整个类而言却是可变的,因为类可以创建多个对象,不同的对象其const数据成员的值可以不同。 不能在类声明中初始化const数据成员。以下用原创 2012-03-01 18:06:45 · 376 阅读 · 0 评论