读书笔记:CSAPP 11章 网络编程】的更多相关文章

在进行网络编程之前,先对网络以及互联网协议做一个了解. 推荐阮一峰的博客:(感谢) http://www.ruanyifeng.com/blog/2012/05/internet_protocol_suite_part_i.html --再去看一遍先-- --看完了-- 16.1引言 客户端.服务器架构 服务器是一个软件或者硬件,用来想一个或多个客户端提供所需要的“服务”.其中,硬件是指打印机.文件服务器等.软件服务器提供的服务主要是程序的运行.数据的发送与接收.合并.升级.或其他的程序或数据操…
第十一章 网络编程 我们需要理解基本的客户端-服务端编程模型,以及如何编写使用因特网提供的服务的客户端-服务端程序. 最后,我们将把所有这些概念结合起来,开发一个小的但功能齐全的Web服务器,能够为真实的Web浏览器提供静态的和动态的文本和图形内容. 11.1 客户端 - 服务器编程模型 每个网络应用程序都是基于客户端 - 服务器模型的 采用这种模型,一个应用是由一个服务器进程 和一个或多个客户端进程组成. 服务器管理某种资源,并且通过操作这种资源为它的客户端提供某种服务. WEB服务器,代表客…
第11章 使用类 1. 运算符重载是一种形式的C++多态. 2. 不要返回指向局部变量或临时对象的引用.函数执行完毕后,局部变量和临时对象将消失,引用将指向不存在的数据. 3. 运算符重载的格式如下: operatorop(argument-list); 可以使用函数表示法或运算符表示法来使用它. total = coding + fixing; total = coding.operator+(fixing); 4. 运算符重载的限制: 1)  重载后的运算符必须至少有一个操作数是用户定义的类…
本章简单介绍了HTML5,并推荐了一个好工具Modernizr,用于检测浏览器可能支持的各种特性. HTML5的新特性包括: 可以用来在文档中绘制矢量及位图的<canvas>元素: 可以在免插件而直接在网页中嵌入音频和视盘的<audio>和<video>元素: 可以为你提供更广泛选择的新的表单控制类型以及新的属性.…
1. 引言 了解如何使用多个控制线程在单进程环境中执行多个任务. 不管在什么情况下,只要单个资源需要在多个用户键共享,就必须处理一致性问题. 2. 线程概念 典型的Unix进程可以看成只有一个控制线程:一个进程在某一时刻只能做一件事情. 多线程带来的好处: 通过为每种事件类型分配单独的处理线程,可以简化处理异步事件的代码.每个线程在进行事件处理时可以采用同步编程模式. 多个进程必须使用操作系统提供的复制机制才能实现内存和文件描述符的共享.而多个线程自动地可以访问相同的存储空间和文件描述符. 有些…
准备:今天拿笔记本装了mysql,这样就能在不同地方用其他电脑远程访问同一个数据库了. python安装MySQLdb模块:http://www.codegood.com/downloads. 21.1 介绍 本章的主题是如何在大型项目中使用关系型数据库.本章对数据库知识和SQL语言不做介绍,本章从一个Python应用程序开始,了解在Python框架下,如何将数据保存到数据库,如何将数据从数据库中取出来."在Python世界里,无需怀疑,与数据库协同工作已经几乎是所有应用程序的核心部分了.&qu…
18.1引言 在多线程(multithreaded,MT)出现之前,电脑程序的运行由一个执行序列组成.多线程对某些任务来说是最理想的.这些任务有以下特点:它们本质上就是异步的,需要多个并发事务,各个事务的运行顺序可以是不确定的.随机的.不可预测的.这样的编程任务可以被分成多个执行流,每个流都有一个要完成的目标.根据应用的不同,这些子任务可能都要计算出一个中间结果,用于合并得到最后的结果.运算密集型任务一般都比较容易分割为多个子任务. 由于顺序执行的程序只有一个线程在运行,它要保证做多个任务,并且…
基础知识 继承机制定义了父子(parent/child)关系.父类(parent)定义了所有子类(children)共通的共有接口(public interface)和私有实现(private implementation).每个子类都可以增加或覆盖(override)继承而来的东西,以实现其自身独特的行为.在C++中,父类被称为基类(base class),子类被称为(derive class).父类和子类之间的关系则称为继承体系(inheritance hierarchy). 多态:让基类的…
1.C函数库提供了两个函数,malloc和free,分别用于执行动态内存分配和释放,这些函数维护一个可用内存池. void *malloc(size_t size);//返回指向分配的内存块起始位置的指针.分配的是一块连续内存.分配单位:字节 void free(void *point); 另外 void *calloc(size_t num_elements,size_t element_size);//分配内存并初始化为0 void realloc(void *ptr, size_t new…
市场需求文档 大多数的公司产品选择权是由高管.市场部门.开发团队甚至是大客户,在这种情况下公司会跳过市场需求文档或是误写成产品规范文档,回避评估产品机会 在正常情况下,应该是由业务人员会撰写一份论证产品可行性的市场需求文档,描述待解决的问题 评估产品机会的十个问题 1.产品要解决什么问题?(产品价值) 2.为谁解决这个问题?(目标市场) 3.成功的机会有多大?(市场规模) 4.怎样判断产品成功与否?(度量指标或收益指标) 5.有哪些同类产品?(竞争格局) 6.为什么我们最适合做这个产品?(竞争优…