自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

IT Zk

学习成长笔记

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

原创 Linux进程间通信

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

2015-03-27 10:25:57 981

转载 epoll使用详解(精髓)

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

2015-03-27 09:18:10 453

原创 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 629

原创 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 2824

转载 select、poll、epoll之间的区别总结[整理]

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

2015-02-28 08:54:42 385

转载 跨平台C++程序开发经验小结

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

2015-02-06 13:22:23 469

原创 namespace 命名空间

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

2015-01-22 16:23:04 954

原创 宏定义格式

在工作中常用的几个宏定义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 1239

原创 回调函数详解

回调函数:我的理解。假设   A是回调函数,B是调用者,B参数里一个是指向A的函数指针,即回调A,同时另外的参数传递给A作为参数。A可以是多个函数的统一指向,只要函数参数个数相同即可。WINDOWS回调函数:永远不会被程序中的其他函数或子程序调用。只能由操作系统调用。因此,windows可以通过传递不同参数给回调函数达到和程序沟通的目的。 那么:B调用A,A也有参数,有参数

2015-01-12 12:03:23 668

原创 goto语句

goto 语句 和标签之间为什么不能定义变量

2015-05-17 19:56:27 732

原创 每日一则

最近做的任务有,装备打星,羽翼功能,星脉,策划文案:装备打星,属于装备强化,通过消耗金钱和材料来提高自己的装备的星级,星级最大为15星,装备打星的过程中,可能会打星失败,打星失败同样会消耗金钱和材料。这里有一个韧度,韧度值为随机获取,如果打星失败,韧度值就会减1,如果韧度值为0,可能会使装备爆损。打星时你可以添加保不爆损材料,打星失败韧度值不会改变,可以保护装备不爆损。

2015-05-11 22:43:08 569

原创 Linux下各类TCP服务实现的源代码

Linux下各类TCP网络服务器的实现源代码 转自互联网大家都知道各类网络服务器程序的编写步骤,并且都知道网络服务器就两大类:循环服务和并发服务。这里附上源代码来个小结吧。首先,循环网络服务器编程实现的步骤是这样的:                              建立socket(这里用到socket()函数及函数setsockopt())         

2015-03-26 17:29:55 1243

转载 三、消息循环

三  消息循环 看服端的主体:live555MediaServer.cpp 中的 main()函数,可见其创建一个 RTSPServer类实例后,即进入一个函数 env->taskScheduler().doEventLoop()中,看名字很明显是一个消息循坏,执行到里面后不停地转圈,生名不息,转圈不止。那么在这个人生的圈圈中如何实现 RTSP 服务和 RTP 传输呢?别想那么远了

2015-01-14 11:48:06 486

转载 二、Live555 基础类

二  基础类 讲几个重要的基础类: BasicUsageEnvironment 和 UsageEnvironment 中的类都是用于整个系统的基础功能类.比如 UsageEnvironment 代表了整个系统运行的环境,它提供了错误记录和错误报告的功能,无论哪一个类要输出错误,就需要保存 UsageEnvironment 的指针.而 TaskScheduler 则提供了任务调度功能

2015-01-14 11:45:31 479

转载 一、 编译Live555

此文出处【http://blog.csdn.net/nkmnkm】 一直想研究 live555,没有时间,终于因为项目的原因可以深入无间地研究一下了.所以在此著文以记之. 一  如何编译 live555 利用 mingw 环境很容易:在 live555 文件夹下, genMakefiles mingw make 即可. 可以用 genWindowsMakefiles

2015-01-14 11:43:12 500

原创 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 870

原创 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 1176

原创 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 1048

原创 select 详解

Select在Socket编程中还是比较重要的,它能够监视我们需要监视的文件描述符的变化情况——读写或是异常。 Select的函数格式(Unix系统下的伯克利socket编程,和windows下的略有区别,体现两个方面:一是select函数的第一个参数,在windows下可以忽略,但在linux下必须设为最大文件描述符加1;二是结构fd_set在两个系统里定义不一样)/*参

2015-01-12 12:00:57 614

转载 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 724

转载 Linux下的实时流媒体编程

一、流媒体简介随着Internet的日益普及,在网络上传输的数据已经不再局限于文字和图形,而是逐渐向声音和视频等多媒体格式过渡。目前在网络上传输音频/视频(Audio/Video,简称A/V)等多媒体文件时,基本上只有下载和流式传输两种选择。通常说来,A/V文件占据的存储空间都比较大,在带宽受限的网络环境中下载可能要耗费数分钟甚至数小时,所以这种处理方法的延迟很大。如果换用流式传输的话,声

2015-01-07 08:56:34 325

翻译 有数据的存储方式

点击打开链接

2014-12-14 09:29:48 603

原创 Oracle 数据库基础知识介绍



2014-09-05 17:12:04 427

原创 数据库导入导出

Oracle数据导入导出imp/exp 功能:Oracle数据导入导出imp/exp就相当与oracle数据还原与备份。 大多情况都可以用Oracle数据导入导出完成数据的备份和还原(不会造成数据的丢失)。 Oracle有个好处,虽然你的电脑不是服务器,但是你装了oracle客户端,并建立了连接 (通过Net Configuration Assistant添加正确的服务

2014-09-05 17:02:01 400

原创 运行时错误解决方法

运行时故障分析与解决(1)Oracle数据库服务器在运行过程中可能出现某些问题,其中,有的问题是致命的,必须重新安装数据库服务器系统,而有的问题只需进行简单的处理就可以解决。下面介绍在学习使用Oracle数据库的过程中经常出现的几个问题及对应的解决方法。1. ORA-12541: TNS:无监听器程序当通过企业管理器或其他工具登录数据库时,如果提示错误“ORA-

2014-09-05 17:01:15 2051

原创 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 394

原创 Oracle 索引 详解

Oracle 索引 详解 一.索引介绍 1.1 索引的创建语法: CREATE UNIUQE | BITMAP INDEX .      ON .           ( |  ASC | DESC,             |  ASC | DESC,...)     TABLESPACE      STORAGE 

2014-09-05 16:58:57 562

原创 Oracle错误代码大全

ORA-00001: 违反唯一约束条件 (.)ORA-00017: 请求会话以设置跟踪事件ORA-00018: 超出最大会话数ORA-00019: 超出最大会话许可数ORA-00020: 超出最大进程数 ()ORA-00021: 会话附属于其它某些进程;无法转换会话ORA-00022: 无效的会话 ID;访问被拒绝ORA-00023: 会话引用进程私用内存;无法

2014-09-05 16:52:43 428

原创 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 359

原创 CMake 学习



2014-09-05 13:30:43 298

原创 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 383

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除