• HBase权威指南中文版

    第1章 简介 1 第2章 安装 28 第3章 客户端API:基础知识 68 第4章 客户端API:高级特性 129 第5章 客户端API:管理功能 197 第6章 可用客户端 230 第7章 与MapReduce集成 275 第8章 架构 299 第9章 高级用法 339 第10章 集群监控 366 第11章 性能优化 395 第12章 集群管理 421 附录A HBase配置属性 451 附录B 计划 467 附录C 版本升级 469 附录D 分支 471 附录E Hush SQL Schema 473 附录F 对比HBase和BigTable 475

    0
    0
    107.29MB
    2017-12-11
    2
  • Hadoop技术内幕:深入解析MapReduce架构设计与实现原理

    前 言 第一部分 基础篇 第1章 阅读源代码前的准备/ 2 1.1 准备源代码学习环境/ 2 1.1.1 基础软件下载/ 2 1.1.2 如何准备windows环境/ 3 1.1.3 如何准备linux环境/ 6 1.2 获取hadoop源代码/ 7 1.3 搭建hadoop源代码阅读环境/ 8 1.3.1 创建hadoop工程/ 8 1.3.2 hadoop源代码阅读技巧/ 9 1.4 hadoop源代码组织结构/ 10 1.5 hadoop初体验/ 13 1.5.1 启动hadoop/ 13 1.5.2 hadoop shell介绍/ 15 1.5.3 hadoop eclipse插件介绍/ 15 1.6 编译及调试hadoop源代码/ 19 1.6.1 编译hadoop源代码/ 19 1.6.2 调试hadoop源代码/ 20 1.7 小结/ 23 第2章 mapreduce设计理念与基本架构/ 24 2.1 hadoop发展史/ 24 2.1.1 hadoop产生背景/ 24 2.1.2 apache hadoop新版本的特性/ 25 2.1.3 hadoop版本变迁/ 26 2.2 hadoop mapreduce设计目标/ 28 2.3 mapreduce编程模型概述/ 29 2.3.1 mapreduce编程模型简介/ 29 2.3.2 mapreduce编程实例/ 31 2.4 hadoop基本架构/ 32 2.4.1 hdfs架构/ 33 2.4.2 hadoop mapreduce架构/ 34 2.5 hadoop mapreduce作业的生命周期/ 36 2.6 小结/ 38 第二部分 mapreduce编程模型篇 第3章 mapreduce编程模型/ 40 3.1 mapreduce编程模型概述/ 40 3.1.1 mapreduce编程接口体系结构/ 40 3.1.2 新旧mapreduce api比较/ 41 3.2 mapreduce api基本概念/ 42 3.2.1 序列化/ 42 3.2.2 reporter参数/ 43 3.2.3 回调机制/ 43 3.3 java api解析/ 44 3.3.1 作业配置与提交/ 44 3.3.2 inputformat接口的设计与实现/ 48 3.3.3 outputformat接口的设计与实现/ 53 3.3.4 mapper与reducer解析/ 55 3.3.5 partitioner接口的设计与实现/ 59 3.4 非java api解析/ 61 3.4.1 hadoop streaming的实现原理/ 61 3.4.2 hadoop pipes的实现原理/ 64 3.5 hadoop工作流/ 67 3.5.1 jobcontrol的实现原理/ 67 3.5.2 chainmapper/chainreducer的实现原理/ 69 3.5.3 hadoop工作流引擎/ 71 3.6 小结/ 73 第三部分 mapreduce核心设计篇 第4章 hadoop rpc框架解析/ 76 4.1 hadoop rpc框架概述/ 76 4.2 java基础知识/ 77 4.2.1 java反射机制与动态代理/ 78 4.2.2 java网络编程/ 80 4.2.3 java nio/ 82 4.3 hadoop rpc基本框架分析/ 89 4.3.1 rpc基本概念/ 89 4.3.2 hadoop rpc基本框架/ 91 4.3.3 集成其他开源rpc框架/ 98 4.4 mapreduce通信协议分析/ 100 4.4.1 mapreduce 通信协议概述/ 100 4.4.2 jobsubmissionprotocol通信协议/ 102 4.4.3 intertrackerprotocol通信协议/ 102 4.4.4 taskumbilicalprotocol通信协议/ 103 4.4.5 其他通信协议/ 104 4.5 小结/ 106 第5章 作业提交与初始化过程分析/ 107 5.1 作业提交与初始化概述/ 107 5.2 作业提交过程详解/ 108 5.2.1 执行shell命令/ 108 5.2.2 作业文件上传/ 109 5.2.3 产生inputsplit文件/ 111 5.2.4 作业提交到jobtracker/ 113 5.3 作业初始化过程详解/ 115 5.4 hadoop distributedcache原理分析/ 117 5.4.1 使用方法介绍/ 118 5.4.2 工作原理分析/ 120 5.5 小结/ 122 第6章 jobtracker内部实现剖析/ 123 6.1 jobtracker概述/ 123 6.2 jobtracker启动过程分析/ 125 6.2.1 jobtracker启动过程概述/ 125 6.2.2 重要对象初始化/ 125 6.2.3 各种线程功能/ 128 6.2.4 作业恢复/ 129 6.3 心跳接收与应答/ 129 6.3.1 更新状态/ 131 6.3.2 下达命令/ 131 6.4 job和task运行时信息维护/ 134 6.4.1 作业描述模型/ 134 6.4.2 jobinprogress/ 136 6.4.3 taskinprogress/ 137 6.4.4 作业和任务状态转换图/ 139 6.5 容错机制/ 141 6.5.1 jobtracker容错/ 141 6.5.2 tasktracker容错/ 142 6.5.3 job/task容错/ 145 6.5.4 record容错/ 147 6.5.5 磁盘容错/ 151 6.6 任务推测执行原理/ 152 6.6.1 计算模型假设/ 153 6.6.2 1.0.0版本的算法/ 153 6.6.3 0.21.0版本的算法/ 154 6.6.4 2.0版本的算法/ 156 6.7 hadoop资源管理/ 157 6.7.1 任务调度框架分析/ 159 6.7.2 任务选择策略分析/ 162 6.7.3 fifo调度器分析/ 164 6.7.4 hadoop资源管理优化/ 165 6.8 小结/ 168 第7章 tasktracker内部实现剖析/ 169 7.1 tasktracker概述/ 169 7.2 tasktracker启动过程分析/ 170 7.2.1 重要变量初始化/ 171 7.2.2 重要对象初始化/ 171 7.2.3 连接jobtracker/ 172 7.3 心跳机制/ 172 7.3.1 单次心跳发送/ 172 7.3.2 状态发送/ 175 7.3.3 命令执行/ 178 7.4 tasktracker行为分析/ 179 7.4.1 启动新任务/ 179 7.4.2 提交任务/ 179 7.4.3 杀死任务/ 181 7.4.4 杀死作业/ 182 7.4.5 重新初始化/ 184 7.5 作业目录管理/ 184 7.6 启动新任务/ 186 7.6.1 任务启动过程分析/ 186 7.6.2 资源隔离机制/ 193 7.7 小结/ 195 第8章 task运行过程分析/ 196 8.1 task运行过程概述/ 196 8.2 基本数据结构和算法/ 197 8.2.1 ifile存储格式/ 197 8.2.2 排序/ 198 8.2.3 reporter/ 201 8.3 map task内部实现/ 204 8.3.1 map task整体流程/ 204 8.3.2 collect过程分析/ 205 8.3.3 spill过程分析/ 213 8.3.4 combine过程分析/ 214 8.4 reduce task内部实现/ 214 8.4.1 reduce task整体流程/ 215 8.4.2 shuffle和merge阶段分析/ 215 8.4.3 sort和reduce阶段分析/ 218 8.5 map/reduce task优化/ 219 8.5.1 参数调优/ 219 8.5.2 系统优化/ 220 8.6 小结/ 224 第四部分 mapreduce高级篇 第9章 hadoop性能调优/ 228 9.1 概述/ 228 9.2 从管理员角度进行调优/ 229 9.2.1 硬件选择/ 229 9.2.2 操作系统参数调优/ 229 9.2.3 jvm参数调优/ 230 9.2.4 hadoop参数调优/ 230 9.3 从用户角度进行调优/ 235 9.3.1 应用程序编写规范/ 235 9.3.2 作业级别参数调优/ 235 9.3.3 任务级别参数调优/ 239 9.4 小结/ 240 第10章 hadoop多用户作业调度器/ 241 10.1 多用户调度器产生背景/ 241 10.2 hod/ 242 10.2.1 torque资源管理器/ 242 10.2.2 hod作业调度/ 243 10.3 hadoop队列管理机制/ 245 10.4 capacity scheduler实现/ 246 10.4.1 capacity scheduler功能介绍/ 247 10.4.2 capacity scheduler实现/ 249 10.4.3 多层队列调度/ 254 10.5 fair scheduler实现/ 255 10.5.1 fair scheduler功能介绍/ 255 10.5.2 fair scheduler实现/ 258 10.5.3 fair scheduler与capacity scheduler对比/ 263 10.6 其他hadoop调度器介绍/ 264 10.7 小结/ 265 第11章 hadoop安全机制/ 266 11.1 hadoop安全机制概述/ 266 11.1.1 hadoop面临的安全问题/ 266 11.1.2 hadoop对安全方面的需求/ 267 11.1.3 hadoop安全设计基本原则/ 267 11.2 基础知识/ 268 11.2.1 安全认证机制/ 268 11.2.2 kerberos介绍/ 270 11.3 hadoop安全机制实现/ 273 11.3.1 rpc/ 273 11.3.2 hdfs/ 276 11.3.3 mapreduce/ 278 11.3.4 上层服务/ 280 11.4 应用场景总结/ 281 11.4.1 文件存取/ 281 11.4.2 作业提交与运行/ 282 11.4.3 上层中间件访问hadoop/ 282 11.5 小结/ 283 第12章 下一代mapreduce框架/ 284 12.1 第一代mapreduce框架的局限性/ 284 12.2 下一代mapreduce框架概述/ 284 12.2.1 基本设计思想/ 284 12.2.2 资源统一管理平台/ 286 12.3 apache yarn/ 287 12.3.1 apache yarn基本框架/ 287 12.3.2 apache yarn工作流程/ 290 12.3.3 apache yarn设计细节/ 291 12.3.4 mapreduce与yarn结合/ 294 12.4 facebook corona / 298 12.4.1 facebook corona基本框架/ 298 12.4.2 facebook corona工作流程/ 300 12.4.3 yarn与corona对比/ 303 12.5 apache mesos/ 304 12.5.1 apache mesos基本框架/ 304 12.5.2 apache mesos资源分配/ 305 12.5.3 mapreduce与mesos结合/ 307 12.6 小结/ 309 附录a 安装hadoop过程中可能存在的问题及解决方案/ 310 附录b hadoop默认http端口号以及http地址/ 312 参考资料/ 313

    4
    0
    11.09MB
    2017-12-11
    2
  • Hadoop 技术内幕:深入解析Hadoop Common 和HDFS 架构设计与实现原理

    前 言 第一部分 环境准备 第1章 源代码环境准备 1.1 什么是Hadoop 1.1.1 Hadoop简史 1.1.2 Hadoop的优势 1.1.3 Hadoop生态系统 1.2 准备源代码阅读环境 1.2.1 安装与配置JDK 1.2.2 安装Eclipse 1.2.3 安装辅助工具Ant 1.2.4 安装类UNIX Shell环境Cygwin 1.3 准备Hadoop源代码 1.3.1 下载Hadoop 1.3.2 创建Eclipse项目 1.3.3 Hadoop源代码组织 1.4 小结 第二部分 Common的实现 第2章 Hadoop配置信息处理 2.1 配置文件简介 2.1.1 Windows操作系统的配置文件 2.1.2 Java配置文件 2.2 Hadoop Configuration详解 2.2.1 Hadoop配置文件的格式 2.2.2 Configuration的成员变量 2.2.3 资源加载 2.2.4 使用get*和set*访问设置配置项 2.3 Configurable接口 2.4 小结 第3章 序列化与压缩 3.1 序列化 3.1.1 Java内建序列化机制 3.1.2 Hadoop序列化机制 3.1.3 Hadoop序列化机制的特征 3.1.4 Hadoop Writable机制 3.1.5 典型的Writable类详解 3.1.6 Hadoop序列化框架 3.2 压缩 3.2.1 Hadoop压缩简介 3.2.2 Hadoop压缩API应用实例 3.2.3 Hadoop压缩框架 3.2.4 Java本地方法 3.2.5 支持Snappy压缩 3.3 小结 第4章 Hadoop远程过程调用 4.1 远程过程调用基础知识 4.1.1 RPC原理 4.1.2 RPC机制的实现 4.1.3 Java远程方法调用 4.2 Java动态代理 4.2.1 创建代理接口 4.2.2 调用转发 4.2.3 动态代理实例 4.3 Java NIO 4.3.1 Java基本套接字 4.3.2 Java NIO基础 4.3.3 Java NIO实例:回显服务器 4.4 Hadoop中的远程过程调用 4.4.1 利用Hadoop IPC构建简单的分布式系统 4.4.2 Hadoop IPC的代码结构 4.5 Hadoop IPC连接相关过程 4.5.1 IPC连接成员变量 4.5.2 建立IPC连接 4.5.3 数据分帧和读写 4.5.4 维护IPC连接 4.5.5 关闭IPC连接 4.6 Hadoop IPC方法调用相关过程 4.6.1 Java接口与接口体 4.6.2 IPC方法调用成员变量 4.6.3 客户端方法调用过程 4.6.4 服务器端方法调用过程 4.7 Hadoop IPC上的其他辅助过程 4.7.1 RPC.getProxy()和RPC.stopProxy() 4.7.2 RPC.getServer()和Server的启停 4.8 小结 第5章 Hadoop文件系统 5.1 文件系统 5.1.1 文件系统的用户界面 5.1.2 文件系统的实现 5.1.3 文件系统的保护控制 5.2 Linux文件系统 5.2.1 Linux本地文件系统 5.2.2 虚拟文件系统 5.2.3 Linux文件保护机制 5.2.4 Linux文件系统API 5.3 分布式文件系统 5.3.1 分布式文件系统的特性 5.3.2 基本NFS体系结构 5.3.3 NFS支持的文件操作 5.4 Java文件系统 5.4.1 Java文件系统API 5.4.2 URI和URL 5.4.3 Java输入输出流 5.4.4 随机存取文件 5.5 Hadoop抽象文件系统 5.5.1 Hadoop文件系统API 5.5.2 Hadoop输入输出流 5.5.3 Hadoop文件系统中的权限 5.5.4 抽象文件系统中的静态方法 5.5.5 Hadoop文件系统中的协议处理器 5.6 Hadoop具体文件系统 5.6.1 FileSystem层次结构 5.6.2 RawLocalFileSystem的实现 5.6.3 ChecksumFileSystem的实现 5.6.4 RawInMemoryFileSystem的实现 5.7 小结 第三部分 Hadoop分布式文件系统 第6章 HDFS概述 6.1 初识HDFS 6.1.1 HDFS主要特性 6.1.2 HDFS体系结构 6.1.3 HDFS源代码结构 6.2 基于远程过程调用的接口 6.2.1 与客户端相关的接口 6.2.2 HDFS各服务器间的接口 6.3 非远程过程调用接口 6.3.1 数据节点上的非IPC接口 6.3.2 名字节点和第二名字节点上的非IPC接口 6.4 HDFS主要流程 6.4.1 客户端到名字节点的文件与目录操作 6.4.2 客户端读文件 6.4.3 客户端写文件 6.4.4 数据节点的启动和心跳 6.4.5 第二名字节点合并元数据 6.5 小结 第7章 数据节点实现 7.1 数据块存储 7.1.1 数据节点的磁盘目录文件结构 7.1.2 数据节点存储的实现 7.1.3 数据节点升级 7.1.4 文件系统数据集的工作机制 7.2 流式接口的实现 7.2.1 DataXceiverServer和DataXceiver 7.2.2 读数据 7.2.3 写数据 7.2.4 数据块替换、数据块拷贝和读数据块检验信息 7.3 作为整体的数据节点 7.3.1 数据节点和名字节点的交互 7.3.2 数据块扫描器 7.3.3 数据节点的启停 7.4 小结 第8章 名字节点实现 8.1 文件系统的目录树 8.1.1 从i-node到INode 8.1.2 命名空间镜像和编辑日志 8.1.3 第二名字节点 8.1.4 FSDirectory的实现 8.2 数据块和数据节点管理 8.2.1 数据结构 8.2.2 数据节点管理 8.2.3 数据块管理 8.3 远程接口ClientProtocol的实现 8.3.1 文件和目录相关事务 8.3.2 读数据使用的方法 8.3.3 写数据使用的方法 8.3.4 工具dfsadmin依赖的方法 8.4 名字节点的启动和停止 8.4.1 安全模式 8.4.2 名字节点的启动 8.4.3 名字节点的停止 8.5 小结 第9章 HDFS客户端 9.1 认识DFSClient 9.1.1 DFSClient的构造和关闭 9.1.2 文件和目录、系统管理相关事务 9.1.3 删除HDFS文件目录的流程 9.2 输入流 9.2.1 读数据前的准备:打开文件 9.2.2 读数据 9.2.3 关闭输入流 9.2.4 读取HDFS文件数据的流程 9.3 输出流 9.3.1 写数据前的准备:创建文件 9.3.2 写数据:数据流管道的建立 9.3.3 写数据:数据包的发送 9.3.4 写数据:数据流管道出错处理 9.3.5 写数据:租约更新 9.3.6 写数据:DFSOutputStream.sync()的作用 9.3.7 关闭输出流 9.3.8 向HDFS文件写入数据的流程 9.4 DistributedFileSystem的实现 9.5 HDFS常用工具 9.5.1 FsShell 9.5.2 DFSAdmin 9.6 小结

    0
    0
    17.57MB
    2017-12-11
    19
  • Caffe官方教程中译本

    Caffe官方教程中译本_CaffeCN社区翻译(caffecn.cn).pdf 感谢CaffeCn的辛勤付出!

    0
    75
    2.12MB
    2017-12-11
    9
  • Apache Spark源码剖析

    《Apache Spark源码剖析》以Spark 1.02版本源码为切入点,着力于探寻Spark所要解决的主要问题及其解决办法,通过一系列精心设计的小实验来分析每一步背后的处理逻辑。, 《Apache Spark源码剖析》第3~5章详细介绍了Spark Core中作业的提交与执行,对容错处理也进行了详细分析,有助读者深刻把握Spark实现机理。第6~9章对Spark Lib库进行了初步的探索。在对源码有了一定的分析之后,读者可尽快掌握Spark技术。, 《Apache Spark源码剖析》对于Spark应用开发人员及Spark集群管理人员都有极好的学习价值;对于那些想从源码学习而又不知如何入手的读者,也不失为一种借鉴。

    0
    0
    43.77MB
    2017-12-11
    2
  • 英文版 Redis.Cookbook(第1版)

    注意是英文版,Redis is an open source, advanced key-value store. It is often referred to as a data structure server since keys can contain strings, hashes, lists, sets and sorted sets. This book will provide developers with problem and solutions in our useful cookbook style. This is example driven ebook.

    0
    51
    4.9MB
    2017-12-11
    10
  • PHP与MySQL程序设计(第4版)

    第1章 PHP概述 1.1 历史 1.1.1 PHP 4 1.1.2 PHP 5 1.1.3 PHP 5.3 1.1.4 PHP 6 1.2 一般语言特性 1.2.1 实用性 1.2.2 强大功能 1.2.3 可选择性 1.2.4 成本 1.3 小结 第2章 环境配置 2.1 安装的前提条件 2.1.1 下载Apache 2.1.2 下载PHP 2.1.3 下载文档 2.2 在Linux上安装Apache和PHP 2.3 在Windows上安装Apache和PHP 2.4 在Windows上安装IIS和PHP 2.5 测试安装 2.6 配置PHP 2.6.1 在Linux上构建时配置PHP 2.6.2 定制Windows构建 2.7 运行时配置 2.7.1 管理PHP的配置指令 2.7.2 PHP的配置指令 2.8 选择代码编辑器 2.8.1 Adobe Dreamweaver CS5 2.8.2 Notepad++ 2.8.3 PDT 2.8.4 Zend Studio 2.9 选择Web托管服务提供商 2.10 小结 第3章 PHP基础 第4章 函数 第5章 数组 第6章 面向对象的PHP 第7章 高级OOP特性 第8章 错误和异常处理 第9章 字符串和正则表达式 第10章 处理文件和操作系统 第11章 PEAR 第12章 日期和时间 第13章 处理HTML表单 第14章 身份验证 第15章 处理文件上传 第16章 网络 第17章 PHP和LDAP 第18章 会话处理程序 第19章 用Smarty模板化 第20章 Web服务 第21章 保护网站安全 第22章 用jQuery和PHP创建AJAX增强特性 第23章 构建面向全世界的网站 第24章 Zend框架介绍 第25章 MySQL介绍 第26章 安装和配置MySQL 第27章 MySQL客户端 第28章 MySQL存储引擎和数据类型 第29章 保护MySQL的安全 第30章 结合使用PHP与MySQL 第31章 PDO介绍 第32章 存储例程 第33章 MySQL触发器 第34章 视图 第35章 实用数据库查询 第36章 索引和搜索 第37章 事务 第38章 导入和导出数据

    5
    0
    60.84MB
    2016-09-18
    50
  • windows sockets网络编程(可能是网上能找到的最清新版) 总计4个包, part4

    windows sockets网络编程经典书籍

    3
    146
    48.46MB
    2015-11-03
    33
  • windows sockets网络编程 总计4个包, part3

    windows sockets 网络编程

    3
    108
    60MB
    2015-11-03
    10
  • Windows Sockets网络编程 总计4个包,part2

    《Windows Sockets网络编程》是WindowsSockets网络编程领域公认的经典著作,由Windows Sockets2.0规范解释小组负责人亲自执笔,权威性毋庸置疑。它结合大量示例,对WindowsSockets规范进行了深刻地解读,系统讲解了WindowsSockets网络编程及其相关的概念、原理、主要命令、操作模式,以及开发技巧和可能的陷阱,从程序员的角度给出了大量的建议和最佳实践,是学习WindowsSockets网络编程不可多得的参考书。   全书分为三部分:第一部分(第1~6章),提供了翔实的背景知识和框架方面的概念,借助于此框架,读者可理解WinSock的具体细节,包括WindowsSockets概述、OSI网络参考模型、TCP/IP协议簇中的协议和可用的服务、WinSock网络应用程序的框架及其工作机制、WinSock的三种操作模式、socket通信机制等;第二部分(第7~12章),以FTP客户端实例为基础介绍了函数实例库,还介绍了客户端程序、服务器程序和DLL中间构件及它们的相应函数,并涵盖socket命令和选项及移植BSDSockets相关事项等;第三部分(第13~17章),介绍了应用程序调试技术和工具,针对应用编程中的陷阱的建议和措施,WinSockAPI的多种操作系统平台,WinSock规范的可选功能和WinSock规范2.0中的所有新功能。 译者序 序 前言 第1章 Windows Sockets概述 1.1 什么是Windows Sockets 1.2 Windows Sockets的发展历史 1.3 Windows Sockets的优势 1.3.1 Windows Sockets是一个开放的标准 1.3.2 Windows Sockets提供源代码可移植性 1.3.3 Windows Sockets支持动态链接 1.3.4 Windows Sockets的优点 1.4 Windows Sockets的前景 1.5 结论 第2章 Windows Sockets的概念 2.1 OSI网络模型 2.2 WinSock网络模型 2.2.1 信息与数据 2.2.2 应用协议 2.3 WinSock中的OSI层次 2.3.1 应用层 2.3.2 表示层 2.3.3 会话层 2.3.4 传输层 2.3.5 网络层 2.3.6 数据链路层 2.3.7 物理层 2.4 模块化的层次框 2.5 服务和协议 2.6 协议和API 第3章 TCP/IP协议服务 3.1 什么是TCP/IP 3.2 TCP/IP的发展历史 3.3 传输服务 3.3.1 无连接的服务:UDP 3.3.2 面向连接的服务:TCP 3.3.3 传输协议的选择:UDP与TCP的对比 3.4 网络服务 3.4.1 IP服务 3.4.2 ICMP服务 3.5 支持协议和服务 3.5.1 域名服务 3.5.2 地址解析协议 3.5.3 其他支持协议 3.6 TCP/IP的发展前景 第4章 网络应用程序工作机制 4.1 客户端-服务器模型 4.2 网络程序概览 4.3 socket的打开 4.4 socket的命名 4.4.1 sockaddr结构 4.4.2 sockaddr_in结构 4.4.3 端口号 4.4.4 本地IP地址 4.4.5 什么是socket名称 4.4.6 客户端socket名称是可选的 4.5 与另一个socket建立关联 4.5.1 服务器如何准备建立关联 4.5.2 客户端如何发起一个关联 4.5.3 服务器如何完成一个关联 4.6 socket之间的发送与接收 4.6.1 在“已连接的”socket上发送数据 4.6.2 在“无连接的”socket上发送数据 4.6.3 接收数据 4.6.4 socket解复用器中的关联 4.7 socket的关闭 4.7.1 closesocket 4.7.2 shutdown 4.8 客户端和服务器概览 第5章 操作模式 5.1 什么是操作模式 5.1.1 不挂机,等待:阻塞 5.1.2 挂机后再拨:非阻塞 5.1.3 请求对方回拨:异步 5.2 阻塞模式 5.2.1 阻塞socket 5.2.2 阻塞函数 5.2.3 伪阻塞的问题 5.2.4 阻塞钩子函数 5.2.5 阻塞情境 5.2.6 撤销阻塞操作 5.2.7 阻塞操作中的超时 5.2.8 无最少接收限制值 5.2.9 代码示例 5.3 非阻塞模式 5.3.1 怎样使socket成为非阻塞的 5.3.2 成功与失败不是绝对的 5.3.3 探询而非阻塞 5.3.4 显式地避让 5.3.5 代码示例 5.4 异步模式 5.4.1 认识异步函数 5.4.2 撤销异步操作 5.4.3 代码示例 5.4.4 AU_Time应用 5.5 性能比较 5.6 平台比较 5.7 真正的阻塞 5.7.1 线程化的应用程序 5.7.2 其他适用性说明 第6章 socket状态 6.1 什么是socket状态 6.1.1 数据报socket的状态 6.1.2 流socket的状态 6.2 socket状态的检测方法 6.2.1 根据函数调用的成功或失败检测 6.2.2 同步检测 6.2.3 异步检测 6.3 WSAAsyncSelect 6.3.1 WSAAsyncSelect的工作原理 6.3.2 什么是WSAAsyncSelect事件 6.3.3 避免机会丢失的窗口 6.3.4 什么是重使能函数 6.3.5 什么是通知消息 6.3.6 为函数失败做好准备 6.3.7 在响应时设置循环 6.3.8 撤销异步通知 6.3.9 事件描述 6.3.10 AS_Echo应用程序 6.4 select 6.4.1 怎样使用select 6.4.2 select的宏 6.4.3 select的输入参数 6.4.4 不要把select作为定时器 6.4.5 注意0超时 6.4.6 代码示例 6.5 查看数据 6.5.1 ioctlsocketFIONREAD命令 6.5.2 带有MSG_PEEK标志的recv 6.6 带外数据 6.6.1 TCP的局限 6.6.2 ioctlsocket函数和SIOCATMARK命令 6.6.3 代码示例 6.7 监听状态 第7章 应用程序和函数实例库 7.1 FTP客户端实例 7.1.1 文件传输协议概述 7.1.2 FTP有限状态机 7.1.3 AC_FTP应用程序 7.1.4 操作中的AC_FTP 7.2 函数实例库 7.2.1 CenterWnd 7.2.2 CloseConn 7.2.3 CreateLclFile 7.2.4 Dlg_About 7.2.5 GetAddr 7.2.6 GetBuf 7.2.7 GetHostID 7.2.8 GetLclDir 7.2.9 GetPort 7.2.10 WSAErrStr 7.2.11 WSAperror 7.3 WinSockx.h 7.3.1 Globals.c 7.3.2 WSA_Xtra.h 第8章 主机名称与主机地址 8.1 主机名称与主机地址解析 8.1.1 hostent结构 8.1.2 主机名称解析 8.1.3 地址解析 8.2 主机表、域名系统和网络信息服务 8.2.1 主机表 8.2.2 域名系统 8.2.3 网络信息服务 8.3 本地主机信息 8.4 网络地址与格式化 8.4.1 in_addr结构 8.4.2 inet_addr 8.4.3 inet_ntoa 8.5 协议族与地址族 第9章 socket信息与控制 9.1 socket控制 9.1.1 FIONBIO 9.1.2 FIONREAD 9.1.3 SIOCATMARK 9.1.4 其他控制命令 9.2 socket选项 9.2.1 getsockopt与setsockopt 9.2.2 SO_ACCEPTCONN 9.2.3 SO_BROADCAST 9.2.4 SO_DEBUG 9.2.5 SO_DONTLINGER 9.2.6 SO_DONTROUTE 9.2.7 SO_ERROR 9.2.8 SO_KEEPALIVE 9.2.9 SO_LINGER 9.2.10 SO_OOBINLINE 9.2.11 SO_RCVBUF与SO_SNDBUF 9.2.12 SO_REUSEADDR 9.2.13 SO_TYPE 9.2.14 TCP_NODELAY 9.2.15 不支持的选项 9.2.16 未来会使用的选项 9.3 阻塞钩子 9.3.1 WSASetBlockingHook 9.3.2 WSAUnhookBlockingHook 9.3.3 阻塞钩子函数 9.3.4 阻塞状态 9.4 socket 名称 9.4.1 getsockname 9.4.2 getpeername 第10章 支持例程 10.1 启动与清除 10.1.1 WSAStartup 10.1.2 WSACleanup 10.2 字节顺序 10.3 服务名称与端口号 10.3.1 servent结构 10.3.2 服务解析 10.3.3 端口解析 10.3.4 服务数据库 10.4 协议名称与协议号 10.4.1 protoent结构 10.4.2 协议名称解析 10.4.3 协议号解析 10.4.4 协议数据库 10.5 报错 10.5.1 WSAGetLastError 10.5.2 WSASetLastError 10.5.3 错误文本显示 第11章 WinSock上的DLL 11.1 创建一个新的API 11.1.1 仿真的API 11.1.2 应用协议API 11.1.3 封装的WinSock API 11.2 DLL的问题 11.2.1 重入 11.2.2 任务管理 11.2.3 与WinSock DLL的链接 11.3 DLL实例 11.3.1 WSASimpl应用程序 11.3.2 WSASimpl DLL 第12章 移植BSD Sockets 12.1 Windows Sockets与Berkeley Sockets的差异 12.1.1 socket不是文件句柄 12.1.2 signal不可用 12.1.3 域名不可用 12.1.4 地址信息和操作不可用 12.1.5 syslog不可用 12.1.6 变量errno不可用 12.1.7 perror和strerror不可用 12.1.8 数据库文件操作不可用 12.1.9 bcmp、bcopy和bzero不可用 12.1.10 本地IPC不可用 12.1.11 OOB API不同 12.1.12 setsockoptSO_DEBUG是可选的 12.2 16位Windows的局限性 12.2.1 16位Windows不清理现场 12.2.2 16位Windows是非抢占式的 12.2.3 16位Windows文件系统不安全 12.2.4 16位Windows使用分段寻址 12.2.5 fork不可用 12.3 移植Berkeley Sockets的其他事项 12.3.1 包含文件 12.3.2 socket域 12.3.3 socket类型 12.3.4 socket句柄 12.3.5 错误值 12.4 函数列表 第13章 调试 13.1 问题类型 13.1.1 安装问题 13.1.2 网络问题 13.1.3 程序问题 13.1.4 WinSock DLL问题 13.2 故障表现及其定位 13.3 问题评估 13.4 安装调试 13.5 网络调试 13.5.1 通用网络调试 13.5.2 主机解析调试 13.6 应用程序调试 13.7 调试工具 13.7.1 网络调试工具 13.7.2 应用程序调试工具 13.7.3 WinSock符合性和性能测试工具 13.7.4 其他调试工具 第14章 该做和不该做的 14.1 特征化应用程序 14.2 应用程序数据流 14.2.1 增大缓存 14.2.2 MTU的考虑 14.2.3 健壮性原则 14.2.4 避免查看 14.2.5 先接收后发送 14.3 流算法 14.3.1 发送结构化数据 14.3.2 发送交互数据 14.3.3 检测无效连接 14.3.4 验证数据传输 14.4 数据报算法 14.4.1 实现超时机制 14.4.2 数据报排序 14.4.3 有节制地发送数据 14.4.4 同步发送方和接收方 14.5 好消息准则 14.5.1 检查返回值 14.5.2 检测部分成功 14.5.3 准备应对任何阶段出现的任何错误 14.5.4 检测非致命错误 14.5.5 恰当地处理错误 14.5.6 对用户透明 14.5.7 留好出口 14.5.8 不忽视任何警告信息 14.6 常见陷阱和缺陷 14.6.1 打开和命名socket 14.6.2 建立连接 14.6.3 监听和同意建立连接 14.6.4 发送和接收 14.6.5 关闭socket 14.6.6 使用主机名称和地址 14.6.7 使用WSAAsyncSelect函数 14.6.8 使用阻塞socket 14.6.9 退出某个应用程序 14.6.10 其他注意事项 第15章 系统平台 15.1 WOSA网络模型 15.2 32位WinSock 15.2.1 Windows 15.2.2 交叉执行 15.2.3 32位WinSock特征 15.2.4 32位操作系统优势 15.3 其他系统平台 第16章 可选特性 16.1 自相矛盾的可选标准 16.2 应该使用可选特性吗 16.3 原始socket 16.3.1 ICMP ping应用 16.3.2 IP_TTL路径跟踪 16.4 多播 16.4.1 为何使用多播 16.4.2 多播API 16.4.3 多播机制 16.5 环回接口 16.6 共享socket 16.7 可选项 16.8 socket作为文件句柄 16.9 在任何时候都准备好应对任何错误 16.10 其他可选特性 第17章 WinSock 17.1 你需要WinSock 2吗 17.2 特性概述 17.3 多协议支持 17.3.1 WinSock 2架构 17.3.2 协议独立 17.3.3 名称空间独立 17.4 重叠I/O 17.5 分散和聚合 17.6 服务质量 17.7 socket组 17.8 多点和多播 17.9 有条件的接受 17.10 连接和断开数据 17.11 socket共享 17.12 协议相关的附加功能 17.12.1 WSAIoctl 17.12.2 get/setsockopt 附录A TCP/IP协议首部 A.1 TCP/IP报文中的分层 A.2 ARP首部 A.3 IP首部 A.4 ICMP首部 A.5 IGMP首部 A.6 TCP首部 A.7 UDP首部 A.8 对话示例 附录B 快速参考 B.1 结构 B.2 函数 B.3 宏 附录C 错误信息参考 C.1 获取错误值的位置 C.2 可能出现的错误 C.3 用户可以解决的错误 C.4 详细的错误描述 C.5 按数值排序的错误代码表 附录D 用户必备 D.1 重要文件 D.2 编译与链接机制 D.3 各种WinSock的使用 D.4 各种编程语言的使用

    1
    469
    60MB
    2015-11-03
    15
关注 私信
上传资源赚积分or赚钱