TCP Sockets编程

出版社:人民邮电出版社
出版日期:2013-10-1
ISBN:9787115330529
作者:斯托里默 (Jesse Storimer)
页数:146页

内容概要

作者简介:
Jesse Storimer
高级软件工程师与自出版作家,服务于美国电子商务方案提供商Shopify。痴迷于编程,编程之余喜欢阅读、园艺以及徒步旅行等户外运动。除了经常写技术博客文章外,他还著有Working with Unix Processes,Working with Ruby Threads两本颇有影响力的电子书。
译者简介:
门佳
Unix/Linux shell、Perl、正则表达式爱好者。在2001年接触Linux后很快喜欢上该系统。对Unix/Linux系统管理、Linux内核、Web技术研究颇多。工作之余,还喜欢探讨心理学,热衷出没于豆瓣和知乎。除此书外,他还译有《Linux Shell脚本攻略》和《理解Unix进程》。

书籍目录

目  录
第1章  建立套接字  1
1.1  Ruby的套接字库  1
1.2  创建首个套接字  1
1.3  什么是端点  2
1.4  环回地址  3
1.5  IPv6  3
1.6  端口  4
1.7  创建第二个套接字  5
1.8  文档  6
1.9  本章涉及的系统调用  7
第2章  建立连接  8
第3章  服务器生命周期  9
3.1  服务器绑定  9
3.1.1  该绑定到哪个端口  10
3.1.2  该绑定到哪个地址  11
3.2  服务器侦听  12
3.2.1  侦听队列  13
3.2.2  侦听队列的长度  13
3.3  接受连接  14
3.3.1  以阻塞方式接受连接  15
3.3.2  accept调用返回一个数组  15
3.3.3  连接类  17
3.3.4  文件描述符  17
3.3.5  连接地址  18
3.3.6  accept循环  18
3.4  关闭服务器  19
3.4.1  退出时关闭  19
3.4.2  不同的关闭方式  20
3.5  Ruby包装器  22
3.5.1  服务器创建  22
3.5.2  连接处理  24
3.5.3  合而为一  25
3.6  本章涉及的系统调用  25
第4章  客户端生命周期  27
4.1  客户端绑定  28
4.2  客户端连接  28
4.3  Ruby包装器  30
4.4  本章涉及的系统调用  32
第5章  交换数据  33
第6章  套接字读操作  36
6.1  简单的读操作  36
6.2  没那么简单  37
6.3  读取长度  38
6.4  阻塞的本质  39
6.5  EOF事件  39
6.6  部分读取  41
6.7  本章涉及的系统调用  43
第7章  套接字写操作  44
第8章  缓冲  45
8.1  写缓冲  45
8.2  该写入多少数据  46
8.3  读缓冲  47
8.4  该读取多少数据  47
第9章  第一个客户端/服务器  49
9.1  服务器  49
9.2  客户端  51
9.3  投入运行  52
9.3  分析  52
第10章  套接字选项  54
10.1  SO_TYPE  54
10.2  SO_REUSE_ADDR  55
10.3  本章涉及的系统调用  56
第11章  非阻塞式IO  57
11.1  非阻塞式读操作  57
11.2  非阻塞式写操作  60
11.3  非拥塞式接收  62
11.4  非拥塞式连接  63
第12章  连接复用  65
12.1  select(2)  66
12.2  读/写之外的事件  68
12.2.1  EOF  69
12.2.2  accept  69
12.2.3  connect  69
12.3  高性能复用  72
第13章  Nagle算法  74
第14章  消息划分  76
14.1  使用新行  77
14.2  使用内容长度  79
第15章  超时  81
15.1  不可用的选项  81
15.2  IO.select  82
15.3  接受超时  83
15.4  连接超时  83
第16章  DNS查询  85
第17章  SSL套接字  87
第18章  紧急数据  92
18.1  发送紧急数据  93
18.2  接受紧急数据  93
18.3  局限  94
18.4  紧急数据和IO.select  95
18.5  SO_OOBINLINE选项  96
第19章  网络架构模式  97
第20章  串行化  101
20.1  讲解  101
20.2  实现  101
20.3  思考  105
第21章  单连接进程  107
21.1  讲解  107
21.2  实现  108
21.3  思考  111
21.4  案例  111
第22章  单连接线程  112
22.1  讲解  112
22.2  实现  113
22.3  思考  116
22.4  案例  117
第23章  Preforking  118
23.1  讲解  118
23.2  实现  119
23.3  思考  123
23.4  案例  124
第24章  线程池  125
24.1  讲解  125
24.2  实现  125
24.3  思考  129
24.4  案例  130
第25章  事件驱动  131
25.1  讲解  131
25.2  实现  133
25.3  思考  140
25.4  案例  142
第26章  混合模式  143
26.1  nginx  143
26.2  Puma  144
26.3  EventMachine  145
第27章  结语  147

作者简介

本书从最底层的概念开始,然后是高层的Ruby包装器,最后涉及到更复杂的内容。最初你会学到如何使用Ruby所提供的底层调用来创建套接字,随后将会看到服务器以及客户端的bind/listen/accept或bind/connect方法的生命周期。接下来将学习到如何使用Ruby中的各种高级包装器类,以避开繁杂的旁枝末节。
本书的中间部分包含了一些高级课题,例如如何正确地实现套接字超时、SSL套接字、缓冲等。最后部分通过使用不同的并发模式来多次实现一个FTP服务器,从而将所有的理论知识应用于实践。
服务器和客户端的生命周期。
使用Ruby在合适的时机,以各种方式读取并写入数据。
提高Socket性能的一些方法。
SSL Sockets基础知识。
实现并发网络的6种架构模式。
连接复用、非阻塞IO、Sockets超时和Sockets选项,等等。


 TCP Sockets编程下载 更多精彩书评



发布书评

 
 


精彩书评 (总计2条)

  •     挺薄挺小也挺简单的一本书,相当与将Ruby中的TCP Sockets讲了一部分,顺带说明了一些基础知识。它并不能让你能够深入了解,对于Sockets入门来说勉勉强强。如果想提升Ruby水平,本书作用也不大,坦白来说本书是不是Ruby写的都影响不大。任何在0~65535之间的端口都可以使用,但是在选用之前别忘了一些重要的约定。规则1:不要使用0~1024之间的端口。这些端口是作为熟知(well-known)端口并保留给系统使用。 规则2:不要使用49000~65535之间的端口。这些都是临时(ephemeral)端口。除此之外,1025~48999之间端口的使用的一视同仁的。如果你希望侦听每一个接口,那么可以使用0.0.0.0.这样会绑定到所有可用的接口、环回接口等。Mongrel、Unicorn、Puma、Passenger以及Net::HTTP,它们无一例外地采用了readpartial(1024*16)。所有这些Web项目都是用16KB作为各自的读取长度。线程和进程都可以用于并行操作,但是方式大不相同。没有万能药,究竟用哪个取决于实际情况。就生成而言,线程的生成成本要低得多。生成一个进程需要创建原始进程所拥有的一切资源的副本。线程以进程为单位,多个线程都存在于同一个进程中。由于多个线程共享内存,无需创建副本,因而线程的生成速度要快得多。因为线程共享内存,当使用会被多个线程访问的数据结构时,一定要多加小心。这通常意味着要在线程之间使用互斥量、锁和同步访问。进程就无需如此了,因为每个进程都有自己的一份资源副本。
  •     花了不到半天,就看完了。讲的东西是比较简单,如果是新人学习的话,还是勉强看看也可以。了解怎么用ruby写个简单服务端/客户端。有网络编程的经验,不建议看了。没有太多值得你惊喜的东西。看完这本书,依旧没法写好网络这块哈。

精彩短评 (总计12条)

  •     可以先简单了解一下socket编程的一些概念
  •     还行, 不过内容太少,别人发blog的,这个作者居然写书的
  •     the best
  •     看完了一遍,了解了小部分,大部分还是晕乎乎的。。
  •     well,作为网络编程的入门科普不错。
  •     内容很少,半天就可以读完。主要介绍Ruby的Socket API、非阻塞的IO和几种常见的服务器架构。写的比较粗浅,如果对网络编程已经有所了解就没有再看的必要了
  •     一直对网络编程中的事件驱动模型不太理解,看完这本书后明白多了。
  •     读的英文版的,概括的很好
  •     ruby 的示例使用
  •     书和翻译都不错。就是技术渣很多程序不造怎么退出,kill已玩坏
  •     没有阅读技术书籍的仪式感,能轻松阅读的一本关于socket编程的小书,如果说还有什么能够让人迷惑的,想来可能还是不会Ruby这门有趣的语言吧~
  •     不一定要学习ruby,里面讲sockets讲得挺全面易懂的
 

外国儿童文学,篆刻,百科,生物科学,科普,初中通用,育儿亲子,美容护肤PDF图书下载,。 零度图书网 

零度图书网 @ 2024