新書推薦:
《
积极心理学
》
售價:NT$
254.0
《
自由,不是放纵
》
售價:NT$
250.0
《
甲骨文丛书·消逝的光明:欧洲国际史,1919—1933年(套装全2册)
》
售價:NT$
1265.0
《
剑桥日本戏剧史(剑桥世界戏剧史译丛)
》
售價:NT$
918.0
《
中国高等艺术院校精品教材大系:材料的时尚表达??服装创意设计
》
售價:NT$
347.0
《
美丽与哀愁:第一次世界大战个人史
》
售價:NT$
653.0
《
国家豁免法的域外借鉴与实践建议
》
售價:NT$
857.0
《
大单元教学设计20讲
》
售價:NT$
347.0
編輯推薦:
你知道Web服务器如何打开套接字并绑定到地址以及如何接受连接吗?作者在深入理解网络协议栈的工作机制之前,就做过大量Web编程。所以放下手中那本1000多页的网络手册吧!旨在为Ruby开发人员介绍Socket编程的方方面面。读完这后,你就会理解Socket编程的必备知识,能够编写服务器\客户端库以及并发网络程序。
中所有的代码均使用Ruby编写,但书中所讲述的内容并不仅限于Ruby。Berkeley套接字API有超过25年的应用历史,与所有的现代编程语言有着紧密的联系
。当使用Python、Go、C或其他编程语言时,这里所学的知识同样适用。介绍的都是网络编程的必备知识,你必然可以从中受益良多。
主要内容
服务器和客户端的生命周期。
使用Ruby在合适的时机,以各种方式读取并写入数据。
提高Socket性能的一些方法。
SSL Sockets基础知识。
实现并发网络的6种架构模式。
连接复用、非阻塞IO、Sockets超时和Sockets选项,等等。
內容簡介:
《TCP
Sockets编程》通过循序渐进的方式,从最基础的概念到高级别的Ruby封装器,再到更复杂的应用,提供了开发成熟且功能强大的应用程序所必备的知识和技巧,帮助读者掌握在Ruby语言环境下,用套接字实现项目开发的任务和技术。
《TCP Sockets编程》适合对TCP套接字感兴趣的读者阅读。
關於作者:
Jesse Storimer
高级软件工程师与自出版作家,服务于美国电子商务方案提供商Shopify。痴迷于编程,编程之余喜欢阅读、园艺以及徒步旅行等户外运动。除了经常写技术博客文章外,他还著有Working
with Unix Processes, Working with Ruby Threads两本颇有影响力的电子书。
目錄 :
第1章 建立套接字
1.1 Ruby的套接字库
1.2 创建首个套接字
1.3 什么是端点
1.4 环回地址
1.5 IPv6
1.6 端口
1.7 创建第二个套接字
1.8 文档
1.9 本章涉及的系统调用
第2章 建立连接
第3章 服务器生命周期
3.1 服务器绑定
3.1.1 该绑定到哪个端口
3.1.2 该绑定到哪个地址
3.2 服务器侦听
3.2.1 侦听队列
3.2.2 侦听队列的长度
3.3 接受连接
3.3.1 以阻塞方式接受连接
3.3.2 accept调用返回一个数组
3.3.3 连接类
3.3.4 文件描述符
3.3.5 连接地址
3.3.6 accept循环
3.4 关闭服务器
3.4.1 退出时关闭
3.4.2 不同的关闭方式
3.5 Ruby包装器
3.5.1 服务器创建
3.5.2 连接处理
3.5.3 合而为一
3.6 本章涉及的系统调用
第4章 客户端生命周期
4.1 客户端绑定
4.2 客户端连接
4.3 Ruby包装器
4.4 本章涉及的系统调用
第5章 交换数据
第6章 套接字读操作
6.1 简单的读操作
6.2 没那么简单
6.3 读取长度
6.4 阻塞的本质
6.5 EOF事件
6.6 部分读取
6.7 本章涉及的系统调用
第7章 套接字写操作
第8章 缓冲
8.1 写缓冲
8.2 该写入多少数据
8.3 读缓冲
8.4 该读取多少数据
第9章 第一个客户端服务器
9.1 服务器
9.2 客户端
9.3 投入运行
9.3 分析
第10章 套接字选项
10.1 SO_TYPE
10.2 SO_REUSE_ADDR
10.3 本章涉及的系统调用
第11章 非阻塞式IO
11.1 非阻塞式读操作
11.2 非阻塞式写操作
11.3 非拥塞式接收
11.4 非拥塞式连接
第12章 连接复用
12.1 select2
12.2 读写之外的事件
12.2.1 EOF
12.2.2 accept
12.2.3 connect
12.3 高性能复用
第13章 Nagle算法
第14章 消息划分
14.1 使用新行
14.2 使用内容长度
第15章 超时
15.1 不可用的选项
15.2 IO.select
15.3 接受超时
15.4 连接超时
第16章 DNS查询
第17章 SSL套接字
第18章 紧急数据
18.1 发送紧急数据
18.2 接受紧急数据
18.3 局限
18.4 紧急数据和IO.select
18.5 SO_OOBINLINE选项
第19章 网络架构模式
第20章 串行化
20.1 讲解
20.2 实现
20.3 思考
第21章 单连接进程
21.1 讲解
21.2 实现
21.3 思考
21.4 案例
第22章 单连接线程
22.1 讲解
22.2 实现
22.3 思考
22.4 案例
第23章 Preforking
23.1 讲解
23.2 实现
23.3 思考
23.4 案例
第24章 线程池
24.1 讲解
24.2 实现
24.3 思考
24.4 案例
第25章 事件驱动
25.1 讲解
25.2 实现
25.3 思考
25.4 案例
第26章 混合模式
26.1 nginx
26.2 Puma
26.3 EventMachine
第27章 结语