- 博客(20)
- 资源 (8)
- 收藏
- 关注
原创 从0开始,快速简单搭建webrtc服务器
WebRTC这几年很火,本篇文章我们就讲讲如何快速搭建一个webrtc服务器。什么是WebRTCWebRTC是一个由Google发起的实时通讯解决方案,其中包含视频音频采集,编解码,数据传输,音视频展示等功能,我们可以通过技术快速地构建出一个音视频通讯应用。虽然其名为WebRTC,但是实际上它不光支持Web之间的音视频通讯,还支持Android以及IOS端,此外由于该项目是开源的,我们也可以通过编译C++代码,从而达到全平台的互通。pion是golang语言开发的一个开源的流媒体框架,本
2021-09-03 17:53:43
3657
原创 C++ 配置文件类(linux与window可跨平台使用)
编写程序一直在用的配置文件类,感觉很好用,做一下总结:class inirw{public: inirw(const char *filename){iniFileLoad(filename);}; ~inirw(){iniFileFree();}; //加载ini文件至内存 char gFilename[SIZE_FILENAME]; char *gBuffer; int gBu...
2018-06-05 16:37:31
2623
2
原创 自己写的C++日志类log
主要功能是在服务器运行的时候可以打印日志到日志文件中,主要运用到的知识点有线程, 线程锁,条件变量,STL的deque。大致思路是这样的: 这个类提供一个接口,可以直接调用他,并且可以打印日志到日志文件中。但是不能影响到服务器的正常运行,也就是说不能进行大量的文件操作;大致 实现流程: 对象初始化时候创建一个线程在后台读取队列,并将读到的数据写入到日志文
2016-08-05 17:12:42
7518
原创 变量命名的通用规则
1.变量名只能是字母(A-Z,a-z)、数字(0-9)或下划线。 2.第一个字母不能是数字,例如2Lerver这不是一个合法的C++变量。 3.不能是c++关键字,例如不能用class这个单词来命名一个变量。 4.区分大小写,例如iA和ia是两个不同的变量。 理论上,在遵守了上面几条规则的前提下,所声明的变量名称都是合法的。比如下面的命名: char xue
2016-08-05 17:11:40
14892
原创 给linux添加回收站
linux下常常使用rm,导致误操作删除一些重要,很难恢复(当然也能恢复,不过比较复杂),所以在这种情况下,我们如果能给linux添加一个回收站就好多了,说白了,这个回收站机制也比较简单,就是使用 mv封装一个rm,简单的可以自己写个脚本,复杂点的就是在bin下添加这个封装命令就行了。给linux添加一个回收站。mkdir /tmp/trash_tmp 建立一个回收站目录vi /
2016-08-05 17:10:48
1763
1
原创 C++读写配置文件 config类
config类自我实现 #ifndef CONFIG_H_#define CONFIG_H_#include #include #define COMMENT_CHAR '#'#define CONFIG_NAME "./config/config.txt"/*** 读取配置文件的操作*/class Config{public:
2016-08-03 13:35:27
5047
5
原创 C++头文件里编写实现代码
C里面一般是不允许把代码直接写在.h文件中的,但是在C++中则完全不一样:1. 简单的代码鼓励写成inline并放在.h文件中,这样编译器可以将代码直接嵌入调用的部分、进行深层次优化并且减少调用开支。当编译器认为不适合inline时也可以自动处理。类中将实现直接写在类声明中的自动成为inline函数。2. 模板类必须把代码写在.h中间,因为是到用时才编译的。事实上现在的C++编译器完全
2016-08-03 13:27:25
1904
原创 C/C++全局变量的定义与引用问题
最近在忙live555项目;说实话这是我做的第一个大型项目。虽然工作这么久还真是第一次做这么大项目;感觉自己这一年还真是没有一点进步;加个全局变量废了我半天力。废话不多说,切入正题全局变量,最早我看书C primer Plus里说的应该是叫做局外变量吧。总是就是以关键字extern 在一个头文件 声明的,然后这个被声明的变量可以被项目里的任意一个.cpp或者.c文件引用,引用的方式有两
2016-07-21 16:59:50
11048
1
原创 Textiew 跑马灯
TextView中可以设置一个ellipsize属性,作用是当文字长度超过textview宽度时的显示方式:例如,"encyclopedia"显示, 只是举例,以实际显示为准:)android:ellipsize=”start”—–省略号显示在开头 "...pedia"android:ellipsize=”end”——省略号显示在结尾 "encyc..."androi
2016-04-18 14:10:32
339
原创 ubuntu运行android studio出错unable to run mksdcard sdk
系统是ubantu 15.10 64位原因:meiyou 64weide jdk xuyaozhuang 32lib 缺少lib 解决方法:sudo apt-get install lib32z1 lib32ncurses5 lib32stdc++6完美解决。
2016-02-22 16:32:38
259
原创 Linux网络套接字
Linux网络套接字 分类: LINUX 套接字连接的过程如同(客户)打一个电话到一个大公司,接线员(服务器进程)接听电话并把它转接到你要找的部门,然后再从那里转到你要找的人(服务器套接字),然后接线员(服务器进程)再继续转接其它(客户)的电话。 套接字有本地套接字和网络套接字两种。本地套接字的名字是Linux文件系统中的文件名,一般放在/tmp或/usr/tmp目
2016-01-05 10:20:17
427
原创 Linux网络编程之套接字基础
Linux网络编程之套接字基础1.套接字的基本结构struct sockaddr这个结构用来存储套接字地址。数据定义:struct sockaddr {unsigned short sa_family; /* address族, AF_xxx */char sa_data[14]; /* 14 bytes的协议地址 */};sa_family 一般来说,都是
2016-01-05 10:17:27
360
原创 U盘系列 之U盘挂载信息的获取
程序内读取/etc/mtab或者/proc/mounts,解析字符串较为繁琐,可以使用mntent提供的方便函数:FILE *setmntent(const char *filename, const char *type);struct mntent *getmntent(FILE *filep);int endmntent(FILE *filep); (1)setmnt
2016-01-04 11:31:52
857
原创 GTK异形窗口;异形组件
#include void show_image(GtkWidget *widget,cairo_t *cr,cairo_surface_t *img) { cairo_region_t *mask; cairo_set_source_surface(cr,img,0,0); cairo_paint(cr);
2015-12-31 16:01:10
1064
1
原创 GTK 滚动窗口构件(GtkScrolledWindow)
一、滚动窗口构件滚动窗口构件(GtkScrolledWindow)用于创建一个可滚动区域,并将其他构件放入其中。可以在滚动窗口中插入任何其他构件,在其内部的构件不论尺寸大小都可以通过滚动条访问到。 1.名称::gtk_scrolled_window_new功能:创建滚动窗口构件函数原形: GtkWidget *gtk_scrolle
2015-12-30 11:24:11
3852
原创 GTK构件 tree_view
这次网络管理工具的编写主要使用GTK作为画图工具;在这里回顾一下其中用到的tree_view构件GtkTreeView 构件是一个高级的构件,利用他可以制作出漂亮的普通列表或者是树状的列表;这个构件里可以包含一或者多行在GtktreeView构件中还有着其他几个独立的对象结构(objects)。其中 GtkCellRenderer 决定了在GtkTreeViewColumn中的数据
2015-12-30 11:20:44
687
原创 url解析
这几天一直在做网络管理;其中有一块需要设计一个后台的下载程序,本来想使用调用系统命令,但考虑到会多开两个进程,于是自己用socket写了一个下载程序,其中关键部分就是对下载链接url的解析。统一资源定位符 (Uniform Resource Locator, URL) 是用于完整地描述Internet上网页和其他资源的地址的一种标识方法。 Internet上的每一个网页都具有一个唯一
2015-12-29 17:37:56
4411
原创 github/gitlab多账户下设置ssh keys
背景在公司一直使用gitlab进行开发,后来想着自己弄一个github保存一下自己的代码,方便以后拿来用。生成gitlab秘钥默认你已经注册了gitlab/github账户,以我自己为例,公司项目用的gitlab,自己代码托管在github。先进行公司账号的设置:本地生成ssh keys命令:ssh-keygen -t rsa -C "注册的gitlab邮箱",生成的公司秘钥会提示
2015-12-29 17:33:49
1906
原创 gentoo安装笔记(1)
算是一个组长布置的作业吧;看我们几个太没事了:以下是我的配置安装笔记;图形界面还没安装上一、1,下载镜像文件官网地址:http://distfiles.gentoo.org/releases/x86/autobuilds/current-iso/使用 dd命令制作引导U盘记录电脑的硬件配置;为之后的编译内核做准备;cpu、显卡、网卡和声卡、U盘启动二、1,启动后
2015-10-21 15:00:22
587
原创 python基础回顾笔记
变量不需要声明: 内置函数 type(),用以查询变量类型输出 :print后边可以添加多个输出;中间以逗号隔开 print a,b基本数据类型:a=10 # int 整数a=1.3 # float 浮点数a=True # 真值 (True/False)a='Hello!' # 字符串序列:s1
2015-09-25 15:53:16
295
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人