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

原创 Linux进程间通信
一、进程间通信概述进程通信有如下一些目的:A、数据传输:一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M字节之间B、共享数据:多个进程想要操作共享数据,一个进程对共享数据的修改,别的进程应该立刻看到。C、通知事件:一个进程需要向另一个或一组进程发送消息,通知它(它们)发生了某种事件(如进程终止时要通知父进程)。D、资源共享:多个进程之间共享同样的资源。为了作
2015-03-27 10:25:57
1021

转载 epoll使用详解(精髓)
epoll - I/O event notification facility在linux的网络编程中,很长的时间都在使用select来做事件触发。在linux新的内核中,有了一种替换它的机制,就是epoll。相比于select,epoll最大的好处在于它不会随着监听fd数目的增长而降低效率。因为在内核中的select实现中,它是采用轮询来处理的,轮询的fd数目越多,自然耗时越多。并且
2015-03-27 09:18:10
477

原创 Epoll模型详解
Linux 2.6内核中提高网络I/O性能的新方法-epoll I/O多路复用技术在比较多的TCP网络服务器中有使用,即比较多的用到select函数。1、为什么select落后 首先,在Linux内核中,select所用到的FD_SET是有限的,即内核中有个参数__FD_SETSIZE定义了每个FD_SET的句柄个数,在 我用的2.6.15-25-386内核中,该值是1024,搜
2015-03-26 16:51:03
662

原创 C语言setsockopt()函数:设置socket状态
头文件:#include #include 定义函数:int setsockopt(int s, int level, int optname, const void * optval, ,socklen_toptlen);函数说明:setsockopt()用来设置参数s 所指定的socket 状态. 参数level 代表欲设置的网络层, 一般设成SOL_SOCKET 以存取
2015-02-28 12:30:20
2946

转载 select、poll、epoll之间的区别总结[整理]
select、poll、epoll之间的区别总结[整理] select,poll,epoll都是IO多路复用的机制。I/O多路复用就通过一种机制,可以监视多个描述符,一旦某个描述符就绪(一般是读就绪或者写就绪),能够通知程序进行相应的读写操作。但select,poll,epoll本质上都是同步I/O,因为他们都需要在读写事件就绪后自己负责进行读写,也就是说这个读写过程是阻塞的
2015-02-28 08:54:42
408

转载 跨平台C++程序开发经验小结
这些是一些自己在开发过程中与移植程序过程中碰到的linux编程与windows编程的差异之处,以及从网上总结了一些解决办法和经验。 1. 文件与目录的大小写以及路径分隔符的差别。 windows下不区分大小写,路径分隔符一般使用"\";linux下区分大小写,路径分隔符使用"/"。 2. itoa()函数在linux下并不存在。 所以
2015-02-06 13:22:23
504

原创 namespace 命名空间
命名空间(namespace)在C 中作用非同一般。 主要介绍命名空间使用方法,或者说是使用命名空间小窍门。 命名空间可以简单将一些命名(name)用另一个命名打包封装起来。比方说:namespace net { class Socket { ... };}...net::Socket socket;经过这样封装以后,如果在两个库(
2015-01-22 16:23:04
991

原创 宏定义格式
在工作中常用的几个宏定义1 几个#ifndef连用#ifndef _WIN32#ifndef Sleep(n)#define Sleep(n) usleep((n)*1000)#endif#endif2 几个#if defined连用的定义#if defined(__WIN32__) || defined(_WIN32) || defined(_WIN32_WC
2015-01-22 14:00:13
1289

原创 回调函数详解
回调函数:我的理解。假设 A是回调函数,B是调用者,B参数里一个是指向A的函数指针,即回调A,同时另外的参数传递给A作为参数。A可以是多个函数的统一指向,只要函数参数个数相同即可。WINDOWS回调函数:永远不会被程序中的其他函数或子程序调用。只能由操作系统调用。因此,windows可以通过传递不同参数给回调函数达到和程序沟通的目的。 那么:B调用A,A也有参数,有参数
2015-01-12 12:03:23
711
原创 每日一则
最近做的任务有,装备打星,羽翼功能,星脉,策划文案:装备打星,属于装备强化,通过消耗金钱和材料来提高自己的装备的星级,星级最大为15星,装备打星的过程中,可能会打星失败,打星失败同样会消耗金钱和材料。这里有一个韧度,韧度值为随机获取,如果打星失败,韧度值就会减1,如果韧度值为0,可能会使装备爆损。打星时你可以添加保不爆损材料,打星失败韧度值不会改变,可以保护装备不爆损。
2015-05-11 22:43:08
605
原创 Linux下各类TCP服务实现的源代码
Linux下各类TCP网络服务器的实现源代码 转自互联网大家都知道各类网络服务器程序的编写步骤,并且都知道网络服务器就两大类:循环服务和并发服务。这里附上源代码来个小结吧。首先,循环网络服务器编程实现的步骤是这样的: 建立socket(这里用到socket()函数及函数setsockopt())
2015-03-26 17:29:55
1279
转载 三、消息循环
三 消息循环 看服端的主体:live555MediaServer.cpp 中的 main()函数,可见其创建一个 RTSPServer类实例后,即进入一个函数 env->taskScheduler().doEventLoop()中,看名字很明显是一个消息循坏,执行到里面后不停地转圈,生名不息,转圈不止。那么在这个人生的圈圈中如何实现 RTSP 服务和 RTP 传输呢?别想那么远了
2015-01-14 11:48:06
508
转载 二、Live555 基础类
二 基础类 讲几个重要的基础类: BasicUsageEnvironment 和 UsageEnvironment 中的类都是用于整个系统的基础功能类.比如 UsageEnvironment 代表了整个系统运行的环境,它提供了错误记录和错误报告的功能,无论哪一个类要输出错误,就需要保存 UsageEnvironment 的指针.而 TaskScheduler 则提供了任务调度功能
2015-01-14 11:45:31
511
转载 一、 编译Live555
此文出处【http://blog.youkuaiyun.com/nkmnkm】 一直想研究 live555,没有时间,终于因为项目的原因可以深入无间地研究一下了.所以在此著文以记之. 一 如何编译 live555 利用 mingw 环境很容易:在 live555 文件夹下, genMakefiles mingw make 即可. 可以用 genWindowsMakefiles
2015-01-14 11:43:12
527
原创 MFC屏蔽esc键盘消息
添加如下函数即可:BOOL CNVRServerDlg::PreTranslateMessage(MSG* pMsg){//屏蔽掉键盘ESC键if(pMsg-> message==WM_KEYDOWN && pMsg-> wParam==VK_ESCAPE) return TRUE; if(pMsg-> message==WM_KEYDOWN &&
2015-01-14 11:38:39
900
原创 MFC程序注册热键
1、首先在.h文件中添加消息响应函数声明 afx_msg LRESULT OnHotKey(WPARAM wParam,LPARAM lParam);2、关联消息及响应函数 BEGIN_MESSAGE_MAP() ON_MESSAGE(WM_HOTKEY,OnHotKey)END_MESSAGE_MAP()3、在初始化函数里注册
2015-01-14 11:36:42
1226
原创 rtsp会话处理流程
rtsp会话处理过程:OPTIONS rtsp://192.168.9.249:1555/ch1_2015_01_06_15_35_04_120 RTSP/1.0CSeq: 2User-Agent: LIVE555 Streaming Media v2011.09.19RTSP/1.0 200 OKCSeq: 2Date: Wed, Jan 07 2015 06:1
2015-01-12 12:04:47
1090
原创 select 详解
Select在Socket编程中还是比较重要的,它能够监视我们需要监视的文件描述符的变化情况——读写或是异常。 Select的函数格式(Unix系统下的伯克利socket编程,和windows下的略有区别,体现两个方面:一是select函数的第一个参数,在windows下可以忽略,但在linux下必须设为最大文件描述符加1;二是结构fd_set在两个系统里定义不一样)/*参
2015-01-12 12:00:57
643
转载 rtsp协议详解
目录:1 概述1.1 RTSP简介1.2 协议特点2 协议细节2.1 典型的rtsp交互过程2.2 RTSP消息格式2.3 方法定义2.4 消息头定义2.5 状态码3 rtsp中常用方法举例4 SDP协议概述4.1 简介4.2 SDP协议格式4.3 SDP协议举例说明1 概述1.1 RTSP简介RTSP(Real Time
2015-01-07 12:37:41
795
转载 Linux下的实时流媒体编程
一、流媒体简介随着Internet的日益普及,在网络上传输的数据已经不再局限于文字和图形,而是逐渐向声音和视频等多媒体格式过渡。目前在网络上传输音频/视频(Audio/Video,简称A/V)等多媒体文件时,基本上只有下载和流式传输两种选择。通常说来,A/V文件占据的存储空间都比较大,在带宽受限的网络环境中下载可能要耗费数分钟甚至数小时,所以这种处理方法的延迟很大。如果换用流式传输的话,声
2015-01-07 08:56:34
354
原创 数据库导入导出
Oracle数据导入导出imp/exp 功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份。 大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的丢失)。 Oracle有个好处,虽然你的电脑不是服务器,但是你装了oracle客户端,并建立了连接 (通过Net Configuration Assistant添加正确的服务
2014-09-05 17:02:01
419
原创 运行时错误解决方法
运行时故障分析与解决(1)Oracle数据库服务器在运行过程中可能出现某些问题,其中,有的问题是致命的,必须重新安装数据库服务器系统,而有的问题只需进行简单的处理就可以解决。下面介绍在学习使用Oracle数据库的过程中经常出现的几个问题及对应的解决方法。1. ORA-12541: TNS:无监听器程序当通过企业管理器或其他工具登录数据库时,如果提示错误“ORA-
2014-09-05 17:01:15
2303
原创 oracle无监听错误解决步骤.docx
1、数据库服务是否启动,OracleOraHome92TNSListener C:\>lsnrctl start (或者手动启动)2、.ora文件配置是否成功路径:\app\tramp\product\11.2.0\dbhome_1\NETWORK\ADMIN\tnsnames.ora举例:ORCL = (DESCRIPTION = (ADDRESS
2014-09-05 17:00:42
420
原创 Oracle 索引 详解
Oracle 索引 详解 一.索引介绍 1.1 索引的创建语法: CREATE UNIUQE | BITMAP INDEX . ON . ( | ASC | DESC, | ASC | DESC,...) TABLESPACE STORAGE
2014-09-05 16:58:57
592
原创 Oracle错误代码大全
ORA-00001: 违反唯一约束条件 (.)ORA-00017: 请求会话以设置跟踪事件ORA-00018: 超出最大会话数ORA-00019: 超出最大会话许可数ORA-00020: 超出最大进程数 ()ORA-00021: 会话附属于其它某些进程;无法转换会话ORA-00022: 无效的会话 ID;访问被拒绝ORA-00023: 会话引用进程私用内存;无法
2014-09-05 16:52:43
453
原创 oracle创建用户
//创建空间 1. create tablespace test 2. datafile 'c:\oracle\oradata\orcl9\test.dbf' size 50M 3. default storage (initial 500K 4. Next 500K 5. minextents 1 6. maxextent
2014-09-05 16:51:07
381
原创 linux/VIM命令总结
1. vim #在命令行中输入 vim,进入 vim 编辑器 2. i #按一下 i 键,下端显示 --INSERT-- #插入命令,在 vim 中可能任意字符都有作用 3. Esc #退出 i(插入)命令进行其它命令使用 4. :r filename #读入一个文件内容,并写入到当前编辑器中 5. :w newfilename
2014-09-05 13:23:23
415
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人