代码改变世界

使用libevent和boost编写一个简单的tcp服务器

2012-03-16 16:51 by 听雨到天明, 1234 阅读, 0 推荐, 收藏, 编辑
摘要:写这个东西主要是为了学习libevent的基本用法,以及学习下boost的线程库。程序结构比较简单: 1. 首先是建立一个监听socke。 2. 将这个监听的socket绑定到一个event事件上,然后等待有客户过来连接。 3. 如果响应到监听socket可读,则accept尝试连接的客户端。 4. 开启一个线程来处理所有和这个连接过来的客户端之间的交互。(实际上什么事情也没做,就是cout了下每次recv的数据大小)代码如下: 1. 首先是程序入口,main函数 main函数主要是注册了一个监听使用的socket。另外一旦进入了监听状态,就不好退出程序,所以一开始就注册了一个... 阅读全文

libevent初体验

2012-03-13 18:49 by 听雨到天明, 290 阅读, 0 推荐, 收藏, 编辑
摘要:直接看代码吧,注释写的很详细了#include<iostream>#include<sys/types.h>#include<event2/event.h>//通用的libevnet消息回调接口,其中fd和event都是注册event的时候提供的标识符//pArg也是注册事件的时候,告诉libevent的,让它传给自己void OnTimer(evutil_socket_t fd, short event, void* pArg){ //这里不做任何判断,合乎常规的方法是对fd和event进行下校验 const char* pStrMsg = (const 阅读全文

execlp函数

2012-02-02 15:31 by 听雨到天明, 1076 阅读, 0 推荐, 收藏, 编辑
摘要:使用execlp函数测试了下,看书不仔细,结果g++总是提示“函数调用中缺少哨兵 [-Wformat]”网上一查,才发现,调用exec函数族的时候,需要在最后一个参数填上 (char*)0,用以表示参数结束了cout << "son" << endl;int nRet = execlp("ls","-alhrt", (char*)0); 最后一个参数必须是(char*)0,并且一旦执行成功了,则后面的两行代码时不会被执行的。因为exec函数使用了ls替换掉了当前的进程。cout << "l 阅读全文

exit和_exit函数

2012-01-31 16:43 by 听雨到天明, 290 阅读, 0 推荐, 收藏, 编辑
摘要:痛苦的学习linux中。exit函数在stdlib.h头文件中,是iso c中的一个函数。_exit函数在unistd.h头文件中,是linux提供的一个系统调用。exit和_exit函数的几个区别1. exit函数会关闭所有打开的io流,并冲洗。 而_exit函数是不是这么做取决于系统的实现(书上说大部分的系统中_exit函数并不会主动关闭io流)。2. exit函数会首先调用atexit()函数所注册的所有函数。 而_exit函数并不管atexit()所注册的那些东西。所以,一旦使用atexit()注册了函数的话,使用_exit来终止main函数就会失效了 阅读全文

mysqlimport: unknown option '-e' 错误

2012-01-10 11:48 by 听雨到天明, 1941 阅读, 0 推荐, 收藏, 编辑
摘要:在博客园找了一些文章学习mysqlimport怎么使用,结果按照别人文章中给出的例子进行实验,发现总是爆出mysqlimport: unknown option '-e'错误。使用的例子:mysqlimport -uroot -p123456 -rl -fields-terminated-by=',' d_prjInfo t_user.txt明明没有使用-e参数嘛,而且我也不知道-e是干嘛的。最后一个参数一个参数的删除来试,发现原来是-fields-terminated-by 参数错误,前面应该是两个 -正确的例子:mysqlimport -uroot -p12 阅读全文

linux下类似于SecureCRT的工具PAC Manager

2011-12-14 18:24 by 听雨到天明, 802 阅读, 0 推荐, 收藏, 编辑
摘要:我觉得PAC Manager下是linux下最接近于SecureCRT的工具了。使用了一两个月之后,发现只有2点不如SecureCRT1. secureCRT登录relay之后,想再打开一个终端只需要clone session就可以了,不需要再次输入密码。 开始一直以为是PAC Manager自身的问题,导致无法做到这一点。后来查资料才知道secureCRT利用了SSL的reuse功能。只需要如下两步,PAC Manager也不需要总是输入密码了。 a. vi ~/.ssh/config b. 加入如下3行 host * controlmaster auto ... 阅读全文

来joke下

2010-04-30 20:05 by 听雨到天明, 136 阅读, 0 推荐, 收藏, 编辑
摘要:ps:本人不负任何责任。。 阅读全文

修改ReportViewer的右键菜单

2010-04-22 23:26 by 听雨到天明, 833 阅读, 0 推荐, 收藏, 编辑
摘要:微软的ReportViewer功能很强大。特别是Visual Studio 2010 带的ReportViewer 10.0导出Excel功能堪称完美,以前版本的不能导出子报表的问题也解决了。ReportViewer提供了一系列的属性用于控制右键菜单,例如showPrintButton设置为false,右键菜单里面的Print项就自动被隐藏了。不过,不知道是我找的原因还是什么,常规的方法都用遍了都... 阅读全文

QT中线程常用的类,和进程的部分函数

2010-04-07 22:20 by 听雨到天明, 459 阅读, 0 推荐, 收藏, 编辑
摘要:夜晚看QT线程相关的东西,就顺手用XMind画了下来,有需要的可以参考下,里面说的可能有很多不对的,欢迎交流~因为图太大了,用的XMind又是免费版的,只要缩放截了个小图,附件里面有转成pdf格式的完整图片和xmind文件。点我下载^_^ 阅读全文

IMAPI刻录光盘,C#

2010-03-21 23:55 by 听雨到天明, 1994 阅读, 1 推荐, 收藏, 编辑
摘要:搞了一夜晚,终于把IMAPI刻录光盘的方法搞定了。碰到一个比较难弄的问题,如果在引用里面直接加上 IMAPI2.dll 和 IMAPI2FSS.dll 的话,最后会导致IMAPI2FS.FsiStreamClass转换到IMAPI2.IStream转不过去。。然后在codeproject里面找到了解决方法,把IMAPI2.dll从引用里面去掉,然后使用下面地址的作者提供的IMAPI2.Intero... 阅读全文