- 博客(19)
- 资源 (1)
- 收藏
- 关注
转载 UML类图关系全面剖析
<br />UML的类图关系分为: 关联、聚合/组合、依赖、泛化(继承)。而其中关联又分为双向关联、单向关联、自身关联;下面就让我们一起来看看这些关系究竟是什么,以及它们的区别在哪里。<br />1、关联<br /> <br /><br /><br />双向关联:<br />C1-C2:指双方都知道对方的存在,都可以调用对方的公共属性和方法。<br />在GOF的设计模式书上是这样描述的:虽然在分析阶段这种关系是适用的,但我们觉得它对于描述设计模式内的类关系来说显得太抽象了,因为在设计阶段关联关系必须被映射
2011-02-09 17:26:00 711 1
原创 Linux 套接字编程中的 5 个隐患
Socket API 是网络应用程序开发中实际应用的标准 API。尽管该 API 简单,但是开发新手可能会经历一些常见的问题。本文识别一些最常见的隐患并向您显示如何避免它们。 在 4.2 BSD UNIX? 操作系统中首次引入,Sockets API 现在是任何操作系统的标准特性。事实上,很难找到一种不支持 Sockets API 的现代语言。该 API 相当简单,但新的开发人员仍然会遇到一些常见的隐患。 本文识别那些隐患并向您显示如何避开它们。隐患 1.忽略返回状态 第一个隐患很明显,但它是开发新
2011-01-12 09:40:00 499
原创 Linux下find命令的用法
每一种操作系统都是由成千上万个不同种类的文件所组成的。其中有系统本身自带的文件,用户自己的文件,还有共享文件等等。 我们有时候经常忘记某份文件放在硬盘中的哪个地方。在微软的WINDOWS操作系统中要查找一份文件是相当简单的事情,只要在桌面上点击“开始”-“搜 索”中就能按照各种方式在本地硬盘上,局域网络,甚至在INTERNET上查找各种文件,文档。 <br /><br />可是使用Linux的用户就没有那么幸运了,在Linux上查找某个文件确实是一件比较麻烦的事情。毕竟在Linux中需要我们使用专用的“查找
2010-06-25 10:48:00 703
转载 epoll模型两种工作模式的思考
epoll模型有两种工作模式,ET和LT,两种模式下都有一些细节值得注意,以下是一些思考: 一、ET模式下Q1: 调用accept时,到底TCP完成队列里有多少个已经建立好的连接?这里又得分情况来说:没有连接。这种情况发生在TCP连接被客户端夭折,即在服务端调用accept之前客户端给出一个RST。该RST导致刚刚建立好的连接从服务器端的TCP完成队列中被移出。源自berkeley的实现会在内核处理该事件,并不会将该事件通知给服务程序,如果套接口被设置为阻塞模式,就会导致accept函数被阻塞,程序挂起,一
2010-06-05 10:29:00 1701
转载 Epoll vs. IOCP
1 Epoll vs. IOCP Epoll 和 IOCP 都是为高性能网络服务器而设计的高效 I/O 模型;都是基于事件驱动的。事件驱动有个著名的好莱坞原则(“不要打电话给我们,我们会打电话给你”)。 不同之处在于: 1. Epoll 用于 Linux 系统;而 IOCP 则是用于 Windows ;(啊,好大的鸡蛋 … ) 2. Epoll 是当事件资源满足时发
2010-02-23 00:20:00 817 1
转载 静态库和共享库库的定位搜索路径
库文件在连接(静态库和共享库)和运行(仅限于使用共享库的程序)时被使用,其搜索路径是在系统中进行设置的。一般 Linux 系统把 /lib 和 /usr/lib 两个目录作为默认的库搜索路径,所以使用这两个目录中的库时不需要进行设置搜索路径即可直接使用。对于处于默认库搜索路径之外的库,需要将库的位置添加到库的搜索路径之中。设置库文件的搜索路径有下列两种方式,可任选其一使用: 在环境变量 LD_LI
2009-10-21 14:41:00 755
原创 liburl简介
libcur官方主页:http://curl.haxx.se/libcurl/libcurl为一个免费开源的客户端url传输库,支持FTP,FTPS,TFTP,HTTP,HTTPS,GOPHER,TELNET,DICT,FILE和LDAP,跨平台,支持Windows,Unix,Linux等,线程安全,支持Ipv6。libcurl编程流程:首先,调用函数curl_global_init()来初始
2009-09-28 20:47:00 1581
原创 Linux core文件设置
在一个程序崩溃时,默认情况下是不产生core文件。下面的命令可以检查生成core文件的选项是否打开:$ulimit -a该命令将显示所有的用户定制,其中选项-a代表“all”。$ulimit -c unlimited来让特定的用户可以产生core文件core文件仅仅是一个内存映象(同时加上调试信息),主要是用来调试的。如果您根本就不想去调试它,只需要简单地用以下命令将它删除即可:
2009-09-24 15:47:00 701
原创 用gdb工具分析core文件
在Unix系统下,应用程序崩溃,一般会产生core文件,如何根据core文件查找问题的所在,并做相应的分析和调试,是非常重要的,本文对此做简单介绍。 例如,一个程序cmm_test_tool在运行的时候发生了错误,并生成了一个core文件,如下:-rw-r–r– 1 root cmm_test_tool.c -rw-r–r– 1 root cmm_test_tool.o -rwxr-
2009-09-21 20:12:00 5591
原创 Echo server
Echo server就是那种提供回显服务的程序,就是收到什么,然后就发送什么的程序。 事件模型socket里面是有select机制,ACE也提供了这种方式。概念:Event_Handler:有事件来临的时候的处理器Reactor:事件管理,负责管理Event_Hanlde和分发事件Acceptor负责连接Event_Handle,Reactor和Sock_Acceptor代码:#if
2009-09-18 14:31:00 1487
转载 基于ACE应用编程框架——线程池
一、基本的实现模型: 线程池的实现模型主要有两种: 1、半同步/半异步模型 在这种模型中,一个侦听线程负责接受请求,并在某个队列中缓冲它们。另外一组工作者线程负责处理请求。因此接受请求的线程并不是处理请求的线程。 2、领导者/跟随者模型 在这种模型中,有一个线程是领导者,其余线程是线程中的跟随者。当请求到达时,领导者首先获取请求,并在跟随者中选取一个作为新的领导者,然
2009-09-18 11:26:00 735
原创 最原始的多线程简介
本人原先看到的多线程编程都是封装以后的,雏形却从来没了解过。今天受到高人指点,真是醍醐灌顶啊,首先要对高人的无私奉献表示极度的敬仰,接着记录一下战果,供我养的肥鸡鉴定: int threadFunc(){ ..... ..... return 0;}typedef FunctionPtrType threadFunc*;std::list g_tasks; //函数指针类型的链表 in
2009-09-15 20:19:00 556
原创 lib和dll的区别
(1)lib是编译时需要的,dll是运行时需要的。 如果要完成源代码的编译,有lib就够了。 如果也使动态连接的程序运行起来,有dll就够了。 在开发和调试阶段,当然最好都有。 (2) 一般的动态库程序有lib文件和dll文件。lib文件是必须在编译期就连接到应用程序中的,而dll文件是运行期才会被调用的。如果有dll文件,那么对应的lib文件一般是一些索引信息,具体的实现在dll文件中。如果只有
2009-09-03 21:20:00 842
原创 TCP和Http的区别
相信不少初学手机联网开发的朋友都想知道Http与Socket连接究竟有什么区别,希望通过自己的浅显理解能对初学者有所帮助。 1、TCP连接 手机能够使用联网功能是因为手机底层实现了TCP/IP协议,可以使手机终端通过无线网络建立TCP连接。TCP协议可以对上层网络提供接口,使上层网络数据的传输建立在“无差别”的网络之上。 建立起一个TCP连接需要经过“三次握手”: 第一
2009-08-26 10:57:00 11934
转载 Base64编码、解码的实现
什么是Base64?按照RFC2045的定义, Base64被定义为:Base64内容传送编码被设计用来把任意序列的8位字节描述为一种不易被人直接识别的形式。(The Base64 Content-Transfer-Encoding is designed to represent arbitrary sequences of octets in a form that need not be
2009-08-10 11:28:00 876
原创 OGRE缓冲鼠标键盘输入无法响应的问题
哎,今天写鼠标键盘的缓冲输入处理,代码写完了,发现根本接收不到键盘鼠标消息,找啊找调啊调,花了将近一刻钟,终于把问题的小辫儿给揪出来了,哈哈,原来是忘了ExampleFrameListener(win, cam,true,true)的后面两个参数赋值成现在的true,这两个参数可是对于处理缓冲模式的输入来说非常关键哦,他们指定了是否处理缓冲输入哦,呵呵,解决了,消遣一下,也把它写在这里,免得以后又
2009-07-01 17:20:00 866
原创 行走的机器人
该实例创建基于robot.mesh文件的实体(Entity)对象,指定其“走”动作(动作信息都在.skeleton文件里,当然目前为止,我们的.skeleton文件夹里只有Walk这个动作),并将其显示到屏幕上。robot.mesh文件中保存机器人的网格信息,Entity会自动加载保存有机器人骨骼信息的robot.skeleton文件。我们重载ExampleApplication类的createS
2009-06-19 09:33:00 746
原创 旋转的摄像头
这几天熟悉了一下Entity,SceneManager,SceneNode。自己可以简单的实现了站立的robot和ninja,总感觉静态的场景不好玩,想做一下动态的场景,由于本人目前是初学者,所以也就只能做做关键帧动画,骨骼动画就留在后面实现吧,hoho~ 定义一个10秒种的动画,这个动画包含一个动画轨迹(上下翻转)。让这个动画应用到当前摄像机上去,程序运行时,我(第一人称摄像机)应该在上
2009-06-18 09:49:00 648
原创 OGRE学习心得——安装
简介:本教程基于Ogre Wiki上的Basic Tutorial系列,并依据笔者使用的vs2005+sp1+OgreSDK1.4.3开发环境简化整理而来,其中穿插着笔者自己的理解。这是教程的第一部分,也是我的学习笔记。正文:凡是翻译过几篇技术类文章的人都深知从头至尾忠实重现作者的原意是一件多么令人头疼的事情。当我从诸多曾经许诺要翻译的文章中爬出来的时候,我决定这次不做那样一个“傻子”,重写那
2009-06-15 09:05:00 626
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人