摘要: 1:什么是Linux下的守护进程 Linux daemon是运行于后台常驻内存的一种特殊进程,周期性的执行或者等待trigger执行某个任务,与用户交互断开,独立于控制终端。一个守护进程的父进程是init进程,它是一个孤儿进程,没有控制终端,所以任何输出,无论是向标准输出设备stdout还是标准出错 阅读全文
posted @ 2017-05-18 16:54 会飞的小丑 阅读(18568) 评论(2) 推荐(2) 编辑
摘要: 1:/dev/urandom和/dev/random是什么 这两个文件记录Linux下的熵池,所谓熵池就是当前系统下的环境噪音,描述了一个系统的混乱程度,环境噪音由这几个方面组成,如内存的使用,文件的使用量,不同类型的进程数量等等,刚开机的时候系统噪音会较小。在这两个设备的差异在于:/dev/ran 阅读全文
posted @ 2017-05-17 17:14 会飞的小丑 阅读(16222) 评论(0) 推荐(0) 编辑
摘要: 1:getopt函数 getopt主要用于解析程序运行时所带的参数,原型如下: 一般的调用方式: 参数描述: 1:argc和argv就是main函数的两个参数 2:optstring参数是描述可支持选项的字符串,如果某个选项后面需要参数值,则选项后面有一个":" 3:optarg 正如2所述,它指向 阅读全文
posted @ 2017-05-17 14:22 会飞的小丑 阅读(1680) 评论(0) 推荐(0) 编辑
摘要: 1:重要的结构体 获取的报文是UDP的payload部分,结构体struct dhcpMessage描述了dhcp报文的结构。 /* packet.h */ 2:udhcpd收发包主干逻辑 2.1 获得套接字接口函数listen_socket /* socket.c */ 函数listen_sock 阅读全文
posted @ 2017-05-08 17:54 会飞的小丑 阅读(1719) 评论(0) 推荐(0) 编辑
摘要: 转:http://blog.sina.com.cn/s/blog_13b34cfee0102wjfo.html 在编写arp请求程序的时候,struct arpMsg 结构体的最后一个成员是u_char pad[18],这个成员是防止arp报文小于64字节而添加的,但为什么会有这个要求呢?这就要提到 阅读全文
posted @ 2017-04-19 17:12 会飞的小丑 阅读(6089) 评论(0) 推荐(0) 编辑
摘要: 1:什么是arp协议 参考文章:http://blog.csdn.net/tigerjibo/article/details/7351992 全称是:Address Resolution Protocol 地址解析协议,也就是用IP地址获取MAC地址的工具。 2:什么时候使用arp arp是处于网络 阅读全文
posted @ 2017-04-19 08:59 会飞的小丑 阅读(1212) 评论(0) 推荐(0) 编辑
摘要: 1:重要的结构体 全局链表的成员struct dhcpOfferedAddr *leases 记录了当前租赁出去的IP信息 /* leases.h */ 结构体三个成员分别记录客户端MAC(为什么不是6字节?),租赁出去的IP地址,以及到期时间(time(0) + server_config.lea 阅读全文
posted @ 2017-04-14 17:45 会飞的小丑 阅读(1300) 评论(0) 推荐(0) 编辑
摘要: 1:重要的结构体 读取配置文件信息到全局的结构体struct server_config_t server_config中,这个结构在很多文件中都有引用到很重要。 /* dhcpd.h */ 英文释意也很明白,比较重要的有struct option_set *options;成员,它是一个指向记录配 阅读全文
posted @ 2017-04-11 14:13 会飞的小丑 阅读(1863) 评论(0) 推荐(0) 编辑
摘要: 1:dhcpd.c udhcpd_main函数是整个程序的入口,依次完成的主要工作有读取配置文件信息至全局结构体、记录程序pid number、初始化lease链表、将程序作为daemon运行、死循环中用socket监听报文执行DHCP报文交互逻辑. 2:files.c 2.1--read_conf 阅读全文
posted @ 2017-04-11 11:16 会飞的小丑 阅读(579) 评论(0) 推荐(0) 编辑
摘要: 在Makefile中常常遇见这几种等操作,总结一下具体区别。 = 是最基本的赋值 := 是用右值覆盖左值 ?= 判断,如果左值没有被赋值过就赋以右值,否则,不做赋值动作 += 在左值后面连接右值(用空格隔开) = 和 := 的语法作用是一样的,只不过在Makefile文件中起效的时间不同造成了它们功 阅读全文
posted @ 2017-03-31 14:09 会飞的小丑 阅读(222) 评论(0) 推荐(0) 编辑