摘要:
基本应用场景——libevent 基本流程 eg: 使用 libevent 设置定时器。 1. 初始化 libevent 库,并保存返回的指针 struct event_base* base = event_init(); // 初始化后,就可以注册事件了 2. 初始化事件 event,设置回调函数 阅读全文
摘要:
1. 简介:Reactor : 反应堆模型, 一种事件驱动方式。 2. 优点 a 响应快,不必为单个同步时间所阻塞。(Reactor 本身是同步的) b 编程相对简单,可以最大程度的避免复杂的多线程和同步问题,避免了多线程/进程的切换开销 c 可扩展性, 可以方便的通过增加Reactor实例个数来充 阅读全文
摘要:
前言: 准备开始学习 C++ 的一些优秀开源代码库。以此来记录自己学习 libevent 的过程和重点。 第一章: libevent 库简介 1. 轻量级开源高性能网络库 2. C语言编写 3. 事件驱动,高性能 4. 跨平台 5. 支持多种 I/O 多路复用技术 epoll poll dev/po 阅读全文
摘要:
取得的固定 IP 参数不一定是公有 IP ,只是一组可接受的固定 IP。 需要修改的参数有 IP相关参数, DNS, 主机名。 1 IP / Netmask / Gateway 的配置 启动 查看 2 DNS 服务器 IP 的定义与查看 vim/etc/resolv。conf dig www.bai 阅读全文
摘要:
操做系统为 centos 1 软件的查询 : rpm -qa 2 软件的安装 : yum install 3 查找相关的配置文件 : rpm -qc 4 服务器的启动与观察 : rpm -ql 阅读全文
摘要:
最近写一个类xhttpd服务器时, 读写文件时,碰到了segmentation fault(core dump) 原因是自己在判断 FILE *fp 时, 在 if 语句中 使 fp = NULL 正确的语法应该是 if(fp == NULL), “=” 使fp 指向了NULL, 在对fp 进行读写 阅读全文
摘要:
首先搞清楚在c语言中没有字符串的类型,所以对字符串操作,有两种形式:可以用字符指针,或者字符串数组(这里的指针变量c,系统会为其重新分配内存。 c程序示例: 1 #include <stdio.h> 2 3 int main() 4 { 5 char *a="hello"; 6 char b[]={ 阅读全文
摘要:
char * a=“hello” ; a是一个char类型的指针,指向第一个字符‘h’。不解引用时,printf(“%s”,a)输入一串字符,解引用时输入一个字符。 而能把字符串赋值给指针时因为对于字符串常量,编译器都是默认按其大小分配内存存放字符串,并把地址首地址赋值指针变量。如:char *p= 阅读全文
摘要:
传入参数为本身有值,传入函数让函数使用;传出参数本身没值,从函数中带出值(相当于函数的返回值)。 如何实现一个传出参数? 定义一个变量,将这个变量的地址传过去,在函数中实现对这个变量的操作。 函数如何返回多个值? 使用传出参数,可以实现返回多个值。 阅读全文
摘要:
自定义swap函数时,加上了测试语句 : cout<<"test swap!"<<endl; 但是在测试的时候sort似乎并没有调用我写的swap函数,cout << “test swap!” << endl; 没有输出出来. 原因是 当元素数目过少时sort使用的是插入排序算法,未使用swap。 阅读全文