自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(16)
  • 收藏
  • 关注

转载 rpm Build 相关知识

编译目录组成介绍rpm-build 包和  /usr/src/redhat ,这些 rpm build 的程序是要靠 spec 文件的控制。它是配置指定安装到另外的机器上的,用来指示转换的源码补丁编译成二进制文件的包。默认编译操作是在下面的目录中,它是编译源码的相关动作操作的位置。如果不指定其它的地方,那么 rpm building 的地方是主要在 /usr/src/redhat 的目录,目录的架构如下,这就是为 rpm-build 提供的目录结构./usr/src/redhat/ |-- BUILD

2011-03-18 13:59:00 2664

转载 典型开源3D引擎分类比较

<br />典型开源3D引擎分类比较<br /> <br />常见的3D引擎有:Unreal,Quake,Lithtech,OGRE,Nebula,Irrlicht,Truevision3D...等,其中开源免费的有:orge,irrlicht,fly3d, NeoEngine, revolution3d, Nebula2,Genesis3d等。OGRE 在免费、开源的引擎中评价最高,一个原因是作为一个图形渲染引擎,它支持的图形特性最多,所以渲染质量也不错;另一个原因是设计模式的清晰;另外,速度也不错。OG

2011-03-16 14:10:00 558

转载 Windows Socket I/O模型 以及 Linux Epoll模型 的有关资料

本文简单介绍了当前Windows支持的各种Socket I/O模型,如果你发现其中存在什么错误请务必赐教。 一:select模型 二:WSAAsyncSelect模型 三:WSAEventSelect模型 四:Overlapped I/O 事件通知模型 五:Overlapped I/O 完成例程模型 六:IOCP模型 老陈有一个在外地工作的女儿,不能经常回来,老陈和她通过信件联系。他们的信会被邮递员投递到他们的信箱里。 这和Socket模型非常类似。下面我就以老陈接收信件为例讲解Socket I/O模型~~

2011-03-14 10:20:00 926

转载 socket编程之完成端口(附一个简单的IOCP例子)

<br />“完成端口”模型是迄今为止最为复杂的—种I/O模型。然而。假若—个应用程序同时需要管理为数众多的套接字,那么采用这种模型。往往可以达到最佳的系统性能,然而不幸的是,该模型只适用于以下操作系统(微软的):Windows NT和Windows 2000操作系统。因其设计的复杂性,只有在你的应用程序需要同时管理数百乃至上千个套接字的时候、而且希望随着系统内安装的CPU数量的增多、应用程序的性能也可以线性提升,才应考虑采用“完成端口”模型。要记住的一个基本准则是,假如要为Windows NT或windo

2011-03-14 10:16:00 1186

转载 epoll边缘触发(epoll et) 源代码例子

 在利用epoll编写网络应用程序,特别是服务器的时候。为了得到最优的效果,一般采用边缘触发(epoll ET)的方式。由于边缘触发,epoll_wait只有在套接字状态发生变化的时候才会返回。所以要对套接字(socket)进行循环accept,read,write;直到套接字的缓冲区空(read,accept)或者填满(write)为止。当read返回的字节数小于要读的字节数,或者返回EAGAIN的时候,认为缓存区为空了。由于网络上已经有很多epollet如何处理epollin事件的例子,所以下面是本人只

2011-03-14 10:12:00 2159

转载 C++编程报告——WxWidget环境配置(IDE:CodeBlocks)

1.简介:Code::Blocks是一个跨平台的C++IDE,支持Windows、Linux、MacOSX。同时他还支持各种不同的编译器,如GNU/MinGW C/C++,VC++ 6.0/2003/2005/2008,Borland C++,Digital Mars等等各种不同的编译器。  经过14个组员长达2年对Code::Blocks的全部重写,终于发布了正式版8.02,这个版本更包括了对构建基于wxWidgets的跨平台GUI程序的支持,堪比Visual C++。wxWidgets则是一个十分优秀的

2011-03-13 22:08:00 930

转载 epoll学习笔记

<br />epoll有两种模式,Edge Triggered(简称ET) 和 Level Triggered(简称LT).在采用这两种模式时要注意的是,如果采用ET模式,那么仅当状态发生变化时才会通知,而采用LT模式类似于原来的select/poll操作,只要还有没有处理的事件就会一直通知.<br /><br />以代码来说明问题:<br />首先给出server的代码,需要说明的是每次accept的连接,加入可读集的时候采用的都是ET模式,而且接收缓冲区是5字节的,也就是每次只接收5字节的数据:<br

2011-03-11 10:57:00 499

转载 多进程服务器中,epoll的创建应该在创建子进程之后

<br />看我的测试代码,似乎应该是在创建子进程之后创建epoll的fd,否则程序将会有问题,试将代码中两个CreateWorker函数的调用位置分别调用,一个在创建epoll fd之前,一个在之后,在调用在创建之前的代码会出问题,在我的机器上(linux内核2.6.26)表现的症状就是所有进程的epoll_wait函数返回0, 而客户端似乎被阻塞了:<br /><br />服务器端:<br /><br />#include <iostream> #include <sys/socket.h> #in

2011-03-11 10:51:00 439

转载 epoll LT VS ET

近日又继续学习了一下EPOLL的工作模式,这会基本上搞清楚了,因而撰写了此篇文档进行描述。先来一段网上的介绍文档:EPOLL事件分发系统可以运转在两种模式下:Edge Triggered (ET)、Level Triggered (LT)。LT是缺省的工作方式,并且同时支持block和no-block socket;在这种做法中,内核告诉你一个文件描述符是否就绪了,然后你可以对这个就绪的fd进行IO操作。如果你不作任何操作,内核还是会继续通知你的,所以,这种模式编程出错误可能性要小一点。传统的select/

2011-03-11 10:29:00 710

转载 epoll使用例子

名词解释:man epoll之后,得到如下结果:NAME       epoll - I/O event notification facilitySYNOPSIS       #include DESCRIPTION       epoll is a variant of poll(2) that can be used either as Edge or Level       Triggered interface and scales well to large numbers of  watche

2011-03-11 10:09:00 456

转载 epoll简介和简单的应用例子

epoll用到的所有函数都是在头文件sys/epoll.h中声明的,下面简要说明所用到的数据结构和函数:所用到的数据结构:typedef union epoll_data {                void *ptr;                int fd;                __uint32_t u32;                __uint64_t u64;        } epoll_data_t;struct epoll_event {               

2011-03-11 09:51:00 441

转载 epoll使用实例说明

<br />之前一直在讲如何epoll如何好用,但是并没有实例来演示epoll的使用,下面我们就看一个服务器端使用epoll监听大量并发链接的例子。<br />首先看一下epoll的几个函数的介绍。<br />1、epoll_create函数<br /><br />/** <br /> * @brief    该函数生成一个epoll专用的文件描述符。它其实是在内核申请一空间,用来存放你想关注的socket fd上是否发生以及发生了什么事件。<br /> * <br /> * @param    size 

2011-03-10 12:26:00 433

转载 Linux2.6内核epoll 网络编程

(1)导言:首先,我强烈建议大家阅读Richard Stevens著作《TCP/IP Illustracted Volume 1,2,3》和《UNIX Network Programming Volume 1,2》。虽然他离开我们大家已经5年多了,但是他的书依然是进入网络编程的最直接的道路。其中的3卷的《TCP/IP Illustracted》卷1是必读-如果你不了解tcp协议各个选项的详细定义,你就失去了优化程序重要的一个手段。卷2,3可以选读一下。比如卷2 讲解的是4.4BSD内核TCP/IP协议栈实现

2011-03-10 12:15:00 491

转载 epoll与iocp的异同之处

目前国内的网游研发,在服务器使用的开发平台方面,win和linux的比例各占多少,我一时半会也没有准确数据,但从我了解的这么多公司情况来看,用win系统的还是比较多一点,这些企业一般都是比较单纯的网游公司,而用linux的则多数是一些传统的互联网公司,比如网易和腾讯。网游服务器用win还是linux,向来都是大家关注的话题。我想,原因可能很多,但此处不想过多论述这个问题,为避免多费口舌,我还是明确表明一下自己的观点:我是推荐用linux作开发的,虽然我也是刚转来作linux平台下的开发。那么,说具体一点。但

2011-03-10 11:35:00 460

转载 Epoll vs. IOCP

1 Epoll vs. IOCPEpoll 和 IOCP 都是为高性能网络服务器而设计的高效 I/O 模型;都是基于事件驱动的。事件驱动有个著名的好莱坞原则(“不要打电话给我们,我们会打电话给你”)。 不同之处在于: 1. Epoll 用于 Linux 系统;而 IOCP 则是用于 Windows ;(啊,好大的鸡蛋 … ) 2. Epoll 是当事件资源满足时发出可处理通知消息;而 IOCP 则是当事件完成时发出完成通知消息。 3. 从应用程序的角度来看, Epoll 本质上来讲是同步非阻塞的,而 IOC

2011-03-10 11:27:00 548

转载 Linux Epoll介绍和程序实例

Linux Epoll介绍和程序实例1. Epoll是何方神圣?Epoll可是当前在Linux下开发大规模并发网络程序的热门人选,Epoll 在Linux2.6内核中正式引入,和select相似,其实都I/O多路复用技术而已,并没有什么神秘的。其实在Linux下设计并发网络程序,向来不缺少方法,比如典型的Apache模型(Process Per Connection,简称PPC),TPC(Thread Per Connection)模型,以及select模型和poll模型,那为何还要再引入Epoll这个东东

2011-03-10 10:53:00 470

空空如也

空空如也

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

TA关注的人

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