上一页 1 2 3 4 5 6 ··· 9 下一页

UNP Chapter 27 - 客户-服务器程序其他设计方法

摘要: 27.1. 概述27.13. 小结 阅读全文
posted @ 2012-04-16 16:30 s7vens 阅读(178) 评论(0) 推荐(0) 编辑

UNP Chapter 26 - 数据链路访问

摘要: 26.1. 概述Unix上三种最常用的数据链路访问方法1. BSD的BSD分组过滤器BPF2. SVR4的数据链路提供者接口DLPI3. Linux的SOCK_PACKET接口26.2. BPF: BSD分组过滤器使用BPF获得分组:虽然在数据链路嵌入一个分组捕获机制并不困难,BPF的强大威力却在于它的过滤功能。26.3. DLPI:数据链路提供者接口使用DLPI, pfmod和bufmod捕获分组应用进程介入数据链路层只需打开设备(例如le0)并使用DLPI的DL_ATTACH_REQQ请求将它与DLPI附接就可以了。不过为了提高效率,一般还需压入两个流模块:pfmod(在内核中进行分组过滤 阅读全文
posted @ 2012-04-16 16:27 s7vens 阅读(488) 评论(0) 推荐(0) 编辑

UNP Chapter 25 - 原始套接口

摘要: 25.1. 概述原始套接口提供以下三种TCP及UDP套接口一般不提供的功能。1. 使用原始套接口可以读写ICMPv4,IGMPv4,ICMPv6分组。例如:Ping程序,就使用原始套接口发送ICMP回射请求,并接受ICMP回射应答。用于多播路由的守护进程:mrouted,同样利用原始套接口来发送和接收IGMPv4分组。上述功能同样允许使用ICMP或IGMP构造的应用程序完成作为用户进程处理,而不必在增加过多的内核编码。例如,路由器发现守护进程(在Solaris 2.x下名为in.rdisc,TCPv1的附录F说明如何获得公开可得版本的源代码)即以这种方式构造。它处理内核完全不知道的两个ICMP 阅读全文
posted @ 2012-04-16 13:56 s7vens 阅读(1721) 评论(0) 推荐(0) 编辑

网络库介绍

摘要: 1. ACE - Adaptive Communication Environment http://www.cs.wustl.edu/~schmidt/ACE.html2. Common G++ (GNU) http://www.gnu.org/software/commoncpp/ 3. Socket++ version 1.11 http://www.cs.utexas.edu/users/lavender/courses/socket++/4. Socket++ version 1.12+ http://www.linuxhacker.at/socketxx5. SocketMan h 阅读全文
posted @ 2012-04-12 17:09 s7vens 阅读(404) 评论(0) 推荐(1) 编辑

UNP Chapter 24 - IP选项

摘要: 24.1. 概述IPv4允许在固定的20字节头部之后跟以40字节的选项。虽然定义了10个不同的选项,但最常用的是源路径选项,这些选项透过IP_OPTIONS套接口选项访问。IPv6允许在固定的40字节IPv6头部和传输层头部(如ICMPv6,TCP或UDP)之间出现扩展头部(extension header)。和IPv4不同的是,访问IPv6扩展头部的途径不是强迫用户去理解头部如何出现在IPv6分组中的实际细节,而是通过函数接口进行。24.2. IPv4选项getsockopt和setsockopt(level参数为IPPROTO_IP,optname参数为IP_OPTIONS)读取和设置IP 阅读全文
posted @ 2012-04-12 16:31 s7vens 阅读(1066) 评论(0) 推荐(0) 编辑

UNP Chapter 23 - 线程

摘要: 23.1. 概述在传统的UNIX模型中,当一个进程需要由另一个实体执行某件事时,该进程派生(fork)一个子进程,让子进程去进行处理。UNIX下的大多数网络服务器程序都是这么编写的,这在我们的并发服务程序例子中可以看出:父进程接收连接,派生子进程,子进程处理与客户的交互。虽然这种模式很多年来使用的很好,但是fork有一些问题:1. fork是昂贵的。内存映像要从父进程拷贝到子进程,所有描述字要在子进程中复制等等。目前的实现使用一种称做写时拷贝(copy-on-write)技术,可避免父进程数据空间向子进程的拷贝,除非子进程需要自己的拷贝。尽管有这种优化技术,fork仍然是昂贵的。2. fork 阅读全文
posted @ 2012-03-29 17:35 s7vens 阅读(685) 评论(1) 推荐(0) 编辑

UNP Chapter 22 - 信号驱动I/O

摘要: 22.1. 概述信号驱动是指当某个描述字上发生了某个事件时,让内核通知进程。这里描述的信号驱动不是真正的异步I/O。第15章描述的非阻塞I/O同样不是异步I/O。在非阻塞I/O中,启动I/O操作后内核并不像真正的异步I/O那样立即返回,它只有在进程非得睡眠才能完成操作时才立即返回。22.2. 套接口上的信号驱动I/O使用套接口上的信号驱动I/O(SIGIO)需要进程执行以下三个步骤:1. 给SIGIO信号建立信号处理程序2. 设置套接口属主,通常使用fcntl的F_SETOWN命令3. 激活套接口的信号驱动I/O,通常使用fcntl的F_SETFL命令打开O_ASYNC标志UDP套接口上的SI 阅读全文
posted @ 2012-03-28 17:15 s7vens 阅读(815) 评论(0) 推荐(0) 编辑

sizeof函数

摘要: . 阅读全文
posted @ 2012-03-09 17:15 s7vens 阅读(130) 评论(0) 推荐(0) 编辑

C++默认的拷贝构造函数

摘要: . 阅读全文
posted @ 2012-03-09 17:15 s7vens 阅读(157) 评论(0) 推荐(0) 编辑

纯虚函数

摘要: 一. 定义纯虚函数是一种特殊的虚函数,它的一般格式如下:class <类名>{virtual <类型><函数名>(<参数表>)=0;…}; 在许多情况下,在基类中不能对虚函数给出有意义的实现,而把它声明为纯虚函数,它的实现留给该基类的派生类去做。这就是纯虚函数的作用。纯虚函数可以让类先具有一个操作名称,而没有操作内容,让派生类在继承时再去具体地给出定义。凡是含有纯虚函数的类叫做抽象类。这种类不能声明对象,只是作为基类为派生类服务。除非在派生类中完全实现基类中所有的的纯虚函数,否则,派生类也变成了抽象类,不能实例化对象。二. 引入原因1、为了方便使 阅读全文
posted @ 2012-03-06 17:28 s7vens 阅读(367) 评论(0) 推荐(0) 编辑
上一页 1 2 3 4 5 6 ··· 9 下一页