摘要: 文章来自官方文档的部分翻译:http://www.wangafu.net/~nickm/libevent-book/通过这部分的了解,基本上可以使用libevent的常用功能了。有时间建议直接看官方文档。一、简介 1、Libevent组成1)evutil:抽象各个平台上的网络实现。2)eventandevent_base:libevent的核心部分,实现了异步的时间回调机制。可用于监听何时socket可读写,与超时,检测系统信号。3)bufferevent:libevent事件核心的一种封装,以实现更简便的使用。该模块允许应用程序访问缓存起来的读写事件,以代替socket准备好时马上通知的方. 阅读全文
posted @ 2013-10-13 11:24 chang290 阅读(2671) 评论(0) 推荐(0) 编辑
摘要: 1、centos安装后提示找不到libevent动态库 根据系统是64位版本还是32位版本,若是64位版本则默认回到 /usr/lib64 目录下查找,而对于32位则到 /usr/lib 目录下查找。因此当提示找不到动态库时,由于安装libevent时默认安装到 /usr/local/lib 目录下,因此需要执行如下软连接: 64位:ln -s /usr/local/lib/libevent-2.0.so.5 /usr/lib64/libevent-2.0.so.5 32位:ln -s /usr/local/lib/libevent-2.0.so.5 /usr/lib/libevent-... 阅读全文
posted @ 2013-10-11 17:29 chang290 阅读(454) 评论(0) 推荐(0) 编辑
摘要: 编译环境: ssh cloud@10.0.4.148 mx-cloud1、关于ARM架构 IPHONE上的ARM-CPU架构在不断的进化过程中,目前情况如下:ARMv8 / ARM64 = iPhone 5sARMv7s = iPhone 5, iPhone 5c, iPad 4ARMv7 = iPhone 3GS, iPhone 4, iPhone 4S, iPod 3G/4G/5G, iPad, iPad 2, iPad 3, iPad Mini ARMv6 = iPhone 2G/3G, iPod 1G/2G2、关于XCode版本问题 1)先查看xcode位置:xcode-se... 阅读全文
posted @ 2013-09-23 16:39 chang290 阅读(327) 评论(0) 推荐(1) 编辑
摘要: 该篇文章翻译自:http://developerlife.com/tutorials/?p=1437 一、简介 Servlet API 3.0 之前,需要使用类似Comet的方式来实现创建异步的Servlet。然而,Tomcat7 与 Servlet API 3.0 支持同步与异步方式。在同步Servlet中,一个处理客户端HTTP请求的线程将在整个请求的过程中被占用。对于运时较长的任务,服务器主要在等待一个应答,这导致了线程的饥渴,并且负载加重。这是由于即使服务器只是等待,服务端的线程还是被请求占光。 异步Servlet,使用在其他线程中执行耗时(等待)的操作,而允许Tomcat的线程... 阅读全文
posted @ 2013-08-22 21:02 chang290 阅读(2288) 评论(0) 推荐(0) 编辑
摘要: 一、没有添加对uncaughtException异常的捕捉处理,最起码也要在其中写个日志记录错误,然后可以调用process.exit(1); 退出进程。二、处理函数的回调函数检查,经常忘记在回调函数前添加 return,导致调用了回调函数后,继续执行后面的代码。三、在循环中使用闭包,待续。。。 阅读全文
posted @ 2013-08-17 19:04 chang290 阅读(429) 评论(0) 推荐(0) 编辑
摘要: 1、启动时加载会话错误 Exception loading sessions from persistent storage 处理方法:删除tomcat对应的项目目录下 work/session.ser 文件即可 参考:http://blog.csdn.net/lxlzhn/article/details/86856872、tomcat启动找不到外部jar包的类 这是由于jar包放置位置问题,需要将其放置到 tomcat项目的 WEB-INF/lib 目录下,然后在eclipse中引用该jar包即可。3、解决tomcat无法自动编译的问题 有时候你会发现创建的tomcat proje... 阅读全文
posted @ 2013-08-05 18:08 chang290 阅读(290) 评论(0) 推荐(0) 编辑
摘要: 一、打好基础1、人生苦短,当有大量更好到选择摆在你面前的时候,在一个蛮荒的软件企业中工作是不明智的。 --3.1 前期准备的重要性2、作为技术雇员,你的一部分工作就是培训周围的非技术人员,讲解开发过程。3、程序员是软件食物链的最后一环。架构师吃掉需求,设计师吃掉架构,而程序员则消化设计。4、发现错误的时间要尽可能接近引入该错误的时间。缺陷在软件食物链里面呆的时间越长,它对食物链的后极产生的影响就越大。5、修复缺陷的成本随着“从引入缺陷到检测该缺陷之间的时间“,变长而急剧增加。无论项目是高度序列化还是高度迭代化都成立。6、一条很有用的经验规则是,计划好预先对大约80%的需求做出详细说明,并给“稍 阅读全文
posted @ 2013-05-21 09:32 chang290 阅读(216) 评论(0) 推荐(0) 编辑
摘要: 1、URI 表示统一资源标示符,URI又包括URL(统一资源定位符),URN(统一资源名)。2、HTTP事务,由一条发起请求于一条响应回复组成。3、HTTP方法,总共有五种:GET、PUT、DELETE、POST、HEAD4、HTTP报文,是由一行一行的纯文本组成。请求与响应都包括:起始行、首部字段、主体。 起始行:报文第一行。 首部字段:由一个名字,加上一个冒号,加上值组成。首部字段以一个空行结束。 主体:可以是任意格式。 阅读全文
posted @ 2013-05-16 09:26 chang290 阅读(124) 评论(0) 推荐(0) 编辑
摘要: 1、给ssh设置空闲超时 有些服务器会设置一个空闲超时时间,当达到这个值就会关闭ssh连接,有时候这非常困扰。 可以使用如下方法解决(http://blog.chinaunix.net/uid-10697776-id-3341317.html) ssh连接超时问题解决方案: 1.修改serv... 阅读全文
posted @ 2013-05-09 17:51 chang290 阅读(285) 评论(0) 推荐(0) 编辑
摘要: Assert: 这个模块用于单元测试使用 require('assert') 之后可以使用; 主要功能就是判断表达式的值,当表达式为假时可以抛出异常。 assert.fail(actual, expected, message, operator) ///函数比较actual于expected值相等时没有操作,否则抛出异常 message为空时格式为 acturl operator expected 方式,否则错误信息为message。 assert(value, message), assert.ok(value, [message]) assert.equal(actual 阅读全文
posted @ 2013-04-22 10:59 chang290 阅读(856) 评论(0) 推荐(0) 编辑