- 博客(151)
- 资源 (29)
- 收藏
- 关注
转载 城市ID
#ifndef __CITYDATA_H__#define __CITYDATA_H__#ifdef __cplusplusextern "C"{#endifextern int cd_get_city_id(const char *pcity_name, long int *pcity_id);extern int cd_get_city_name(long int city_id, char ...
2018-07-15 16:09:12 3457
原创 链表基础
/* * =========================================================================== * * Filename: Linklist.c * Description: * Version: 1.0 * Created: 2018年04月15日 12时49分5...
2018-04-15 14:22:16 588
原创 C++单例模式(懒汉 & 饿汉)
单例模式存在的意义是保证一个类仅有一个实例,并提供一个访问它的全局访问点,该实例被所有程序模块共享。懒汉示例如下:#ifndef SINGLETON_H#define SINGLETON_H#include <iostream>#include <QMutex>using namespace std;//用户访问唯一实例的方法只有GetInstance()成员函数...
2018-04-07 19:33:54 2008
原创 IO多路复用 IO异步
IO多路复用 IO异步一、概念说明同步IO和异步IO,阻塞IO和非阻塞IO分别是什么,到底有什么区别?不同的人在不同的环境给出的答案是不同的。所以先限定一下本文的环境。本文讨论的背景是Linux环境下的network IO在进行解释之前,首先要说明几个概念:- 用户空间和内核空间- 进程切换- 进程的阻塞- 文件描述符- 缓存 I/O用户空间与内核空间现在操作系统都是采用虚拟存储器,那么对32位操...
2018-03-30 15:05:07 715
原创 select
select函数: 系统提供select函数来实现多路复用输入/输出模型。原型: #include <sys/time.h> #include <unistd.h> select函数: 系统提供select函数来实现多路复用输入/输出模型。原型: #include <sys/time.h> #include <unistd.h> in...
2018-03-29 17:59:11 318
原创 linux中send函数MSG_NOSIGNAL
linux下当连接断开,还发数据的时候,不仅send()的返回值会有反映,而且还会向系统发送一个异常消息,如果不作处理,系统会出BrokePipe,程序会退出,这对于服务器提供稳定的服务将造成巨大的灾难。为此,send()函数的最后一个参数可以设MSG_NOSIGNAL,禁止send()函数向系统发送异常消息//中间的select就是为了侦测断开后再次连接并二次sendint socket_sen...
2018-03-29 17:07:33 10004
原创 播放器二(FFMPEG+SDL+AUDIO)
AUDIO大致流程://初始化输入avformat_open_input() -- 打开对应音频文件avformat_find_stream_info() -- 从输入文件中获取到流的相关信息,例如:文件中流的数量//初始化解码器avcodec_find_decoder() -- 根据ffmpeg提供的解码器id,找到对应的解码器avcodec_ope...
2018-03-15 16:57:39 483 2
原创 播放器一(FFMPEG+SDL+VIDEO)
知识点如下:1、pFrameYUV为sws_scale缩放接口的出参,通过指针方式将pFrameYUV数据赋值给bmp2、播放器函数简介av_register_all():注册所有组件avformat_opent_input():打开输入视频文件avformat_find_stream_info():获取视频文件信息avcodec_find_decoder():查找解码器avcodec_open2...
2018-03-14 20:06:05 1368 1
原创 Linux下查看CPU、内存占用率
Linux下查看CPU、内存占用率我们经常需要查看CPU和内存占用率,否则一旦存在情况很快就会有IDC(或客户)找上门,Linux上查看资源使用情况有多种命令可以参考,CPU、内存、IO、NETWORK等资源使用情况都可以通过某些命令查询到,本文只说CPU/内存及简单的问题追踪方法。一、top查看Linux资源占用情况top命令可以查看CPU、内存利用率,当然这些值都是平均利用率,以下是安装APA...
2018-02-09 10:18:39 128376 1
原创 Linux进程放入后台
Linux下进程放入后台执行几种方法:1. nohup顾名思义,nohup的用途就是让提交的命令忽略所有的hangup信号。使用方法:nohup COMMAND [ARG]…nohup 示例1234567[root@pvcent107 ~]# nohup ping www.ibm.com &amp;[1] 3059nohup: appending output to `nohup.out'...
2018-02-09 10:11:59 4700
原创 虚拟机磁盘清理
vmware磁盘空间占用越来越大背景vmware虚拟机安装操作系统,在使用过程中,不知什么原因,磁盘占用空间越来越大。原因虚拟机在使用过程中,需要安装的软件我都是通过拖拽上传的安装包。由于虚拟机会缓存拖拽文件,不自动删除,导致系统占用空间越来越大。解决办法1、可以查看使用过拖拽文件的用户的.cache目录,看里面是否存在vmware缓存的文件目录类似:/root/.cache/vmware/dra...
2018-02-09 10:07:20 2596
原创 C++系列(运算符重载)
所谓运算符重载,就是给原有运算符赋予新的功能。比如说,加好(+)是用来做两个数字相加操作的(如:1+1=2),但是,我们往往用加号来让两个字符串作拼接(如:慕+课=慕课),那么,这个时候就是给加号做了运算符的重载。我们来看一个常见的例子:在这个例子当中,我们就使用了加号去连接多个字符串,使其拼接成一个字符串,而且,我们在打印的时候,也可以将拼接好的字符串直接打印出来,那么这个字符串就进行了多个运算...
2018-02-08 11:05:26 840
原创 C++系列(友元)
我们提到过C++中存在一种朋友关系,这种朋友关系如果体现在函数上,那么我们就称之为友元函数;如果体现在类上,我们就称之为友元类。友元函数对于我们定义函数的情形来说,一种情况是将函数定义为全局函数,另一种情况是将函数定义在一个类当中,使其成为类的一个成员函数。如果将全局函数声明为友元,则成为友元全局函数;如果将一个类的成员函数声明为另外一个类的友元函数,那么称该成员函数为友元成员函数。友元全局函数我...
2018-02-08 11:00:29 1141 1
原创 C++系列(标准模板库STL)
C++标准模板库,简称为STL:Standard Template Lib。关于STL涉及的部分比较多,我们这里只选具有代表性和最常用的部分给大家进行分享。vector向量vector的本质就是:对数组的封装。大家可以将其看作是一个数组,只不过对于vector这个数组来说,相对于我们之前所学的传统数组的功能要强大得多。它可以根据所存储的元素个数,自动变长或者缩短,同时,它还具有一个
2018-01-06 16:47:04 1701
原创 C++系列(关键字static)
static前面的课程我们介绍了:普通的数据成员和普通的成员函数的定义方法,又介绍了const关键字,并且讲解了用const关键字来修饰数据成员和成员函数,我们把这样的数据成员和成员函数称之为常数据成员和常成员函数。这节课,我们再为大家介绍一个关键字:static(静态的)。在C++中提到静态,就不得不提到两个基本概念:静态数据成员和静态成员函数。我们以一个例子来看一下静态数据成员和静态成
2017-12-18 15:57:26 625
原创 C++系列(纯虚函数和抽象类)
一个含有纯虚函数的类(抽象类)来说,其无法进行实例化那么,纯虚函数是什么呢??从上面的定义可以看到,纯虚函数就是没有函数体,同时在定义的时候,其函数名后面要加上“= 0”。
2017-12-18 15:52:57 60887
原创 C++三种继承方式 & is-a & has-a & 隐藏
C++类中的成员(函数/变量)拥有三种访问权限:public:表示公有成员,该成员不仅可以在类内可以被访问,在类外也是可以被访问的,是类对外提供的可访问接口;private:表示私有成员,该成员仅在类内可以被访问,在类体外是隐藏状态;protected:表示保护成员,保护成员在类体外同样是隐藏状态,但是对于该类的派生类来说,相当于公有成员,在派生类中可以被访问。
2017-12-18 13:27:29 1809 1
原创 C++系列(const再现江湖)
const再现江湖之前我们已经学习过const了,但是还是不够深入,这节课我们继续来学习const。下面先来看一个例子。这里我们定义了一个坐标Coordinate的类,在这个坐标类当中我们定义了两个数据成员,分别表示横坐标和纵坐标(注意:这两个数据成员我们都用了const关键字来修饰),另外我们还定义了一个构造函数,这个构造函数中有两个参数,我们希望将这两个参数传进来后类似
2017-12-15 17:38:14 384
原创 C++const 关键字小结
const 是constant的缩写,本意是不变的,不易改变的意思。const 在C++中是用来修饰内置类型变量,自定义对象,成员函数,返回值,函数参数。 对于A,B,C三种情况,根据const位于*号的位置不同,我总结三句话便于记忆的话,“左定值,右定向,const修饰不变量”。
2017-12-15 16:46:59 362
原创 P2P穿透(ENet丢包重传)
P2P穿透 & ENet :P2P穿透成功后,获得对端IP和端口通过ENet进行连接传输数据,解决了UDP丢包视频卡顿的问题!http://download.csdn.net/download/yuanchunsi/10159049
2017-12-14 19:30:53 1544
转载 几种UDP网络库的整理 Raknet,UDT,ENet,lidgren-network-gen3
几种UDP网络库的整理Raknet,UDT,ENet,lidgren-network-gen3
2017-12-08 17:04:25 2055
原创 Wireshark & tcpdump & ELecard StreamEye Tools
Wireshark & tcpdump & ELecard StreamEye Tools
2017-12-06 15:33:51 775
P2P & ENet
2017-12-14
android编译openssl静态库.a 动态库.so
2017-08-09
AMR 编码 PCM & WAV
2017-08-01
PCM2G711(ALAW&ULAW)
2017-06-06
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人