会员
众包
新闻
博问
闪存
赞助商
HarmonyOS
Chat2DB
所有博客
当前博客
我的博客
我的园子
账号设置
会员中心
简洁模式
...
退出登录
注册
登录
CobbLiu
Touching the void.
博客园
首页
新随笔
联系
订阅
管理
上一页
1
···
8
9
10
11
12
13
14
15
16
···
20
下一页
2014年6月3日
获取DNS服务器的版本信息
摘要: 1 如何获取DNS服务器的版本信息向某个DNS服务器发送下面的请求即可获得版本信息 dig @115.124.17.156 version.bind chaos txt它返回的信息如下:; > DiG 9.7.0-P2-RedHat-9.7.0-5.P2.el6 > @115.124.17.156 ...
阅读全文
posted @ 2014-06-03 12:27 CobbLiu
阅读(7149)
评论(0)
推荐(0)
2014年6月2日
由select/epoll返回的非阻塞connect还会是EINPROGRESS状态吗?
摘要: 一般情况下,我们像下面代码中所示的这样使用非阻塞connect:#include #include #include #include #include #include #include #include #include #include #define EPOLL_MAXEVENTS 64in...
阅读全文
posted @ 2014-06-02 19:59 CobbLiu
阅读(5103)
评论(0)
推荐(0)
2014年5月22日
Emacs 文件中的查找操作
摘要: 1,在本文件中查找list-matching-lines 命令会列出本文件中所有出现text的地方。下面是它的一个输出示例:7 matches for "ngx_http_wait_request_handler" in buffer: ngx_http_request.c ...
阅读全文
posted @ 2014-05-22 13:40 CobbLiu
阅读(5434)
评论(0)
推荐(0)
2014年5月5日
MySQL C 客户端的内存泄漏问题
摘要: 我们的一个服务器软件在线上环境运行时出现了内存缓慢增长的问题。用valgrind测试 MySQL的C客户端mysqlclient发现,它在正常的使用中会被valgrind报出存在内存泄漏。1正常使用场景下面的代码是使用mysqlclient读取数据的最常用的代码#include #include i...
阅读全文
posted @ 2014-05-05 13:44 CobbLiu
阅读(7522)
评论(1)
推荐(3)
2014年4月25日
DNS CNAME的一些细节
摘要: ### 1, 概述DNS中的CNAME可以减轻运维压力,使得已有的DNS配置具有一定的灵活性和可扩展性。本文对CNAME中的一些细节做阐述, 使DNS服务器的运维人员和开发人员能合理地使用CNAME。### 2, zone的CNAME你可能想把一个zone的DNS解析转发到另一个zone的DNS解析...
阅读全文
posted @ 2014-04-25 00:23 CobbLiu
阅读(20052)
评论(1)
推荐(0)
2014年4月10日
DNS Wildcard(DNS泛域名)
摘要: 在DNS中,**泛域名(wildcard Resource Record)**可以被认为是一种合成RR的机制,借助于它,DNS服务器可以响应本来不存在的域名的请求,它的设计初衷是用来把所有邮件都转发到一个邮件系统(当然,它除了用在MX类型的资源记录上外,还可以用在其他的资源记录上)。 ### 泛域...
阅读全文
posted @ 2014-04-10 00:14 CobbLiu
阅读(6322)
评论(0)
推荐(0)
2014年3月27日
用setitimer实现多个定时器
摘要: 从这篇文章中可以看出,setitimer只能实现一个定时器,如果多次调用setitimer,旧值都会被覆盖掉。如何用setitimer实现多个定时器呢?下面是我的一个实现,具体的方法是:用链表从小到大维护这些定时器的信息,表头元素的定时器时间最短。当有新的定时器加入时,将它插入到合适的位置;当一个定时时间到达后,更新链表中所有定时器的剩余时间,再次调用setitimer。废话不多说,直接上代码:#include #include #include #include #include typedef struct my_timer_s my_timer_t;struct my_timer_s {
阅读全文
posted @ 2014-03-27 02:25 CobbLiu
阅读(6314)
评论(1)
推荐(0)
2014年3月9日
BIND9源码分析之UDP数据处理
摘要: 本文简要介绍一下BIND9中的UDP数据处理,包括如何创建socket、设置什么socket参数、多线程环境中如何让多个线程读取53端口的数据等等。BIND9的架构采用event-driven和task-based。对于像TCP这样的事件采用event-driven来等待读写时间,而在多线程方面,采...
阅读全文
posted @ 2014-03-09 21:34 CobbLiu
阅读(4209)
评论(4)
推荐(0)
2014年1月7日
Erlang中atom的实现
摘要: Erlang的原子(atom)在匹配中有着重要作用,它兼顾了可读性和运行效率。 通过atom,可以实现很多灵活高效的应用。atom可以看作是给字符串生成了一个ID,内部使用的是ID值,必要时可以取出它的内容(字符串),例如用于打印输出。atom 的 Eterm 除去 6 位的标签之外剩下的部分,就是 atom 在 Erlang 虚拟机中的索引,也就是一个整数值。在 Erlang 中,有关 atom 比较的操作只需要比较两个索引值即可,就是整数操作,因此非常高效。atom 本身是一个字符串,那么 atom 的索引是怎样对应上具体的字符串的呢?也就是需要实现字符串和索引值之间的互相映射,字符串和索
阅读全文
posted @ 2014-01-07 20:25 CobbLiu
阅读(2031)
评论(0)
推荐(0)
2013年12月24日
高性能网络编程中的几个基本概念
摘要: 本文解释高性能网络编程中的几个基本概念。阻塞(blocking)和非阻塞(non-blocking):阻塞和非阻塞是指用户进程在做read(), write()等系统调用的时候,根据系统调用当前所处的状态而采取的不同的处理策略。拿read()函数来说,阻塞情况下,如果没有数据到达,则用户进程一直等待(睡眠),直到数据到达,这个过程中用户进程处于睡眠状态,干不了其他事情;非阻塞情况下,如果数据没有到达,则立即返回给用户进程一个状态信息(EAGAIN,EWOULDBLOCK等),用户进程根据这个状态信息选择继续调用read()还是去干其他事情。同步(synchronous)和异步(asynchro
阅读全文
posted @ 2013-12-24 22:29 CobbLiu
阅读(1039)
评论(0)
推荐(0)
上一页
1
···
8
9
10
11
12
13
14
15
16
···
20
下一页
公告