Logo

TCP Sockets编程

原作名:Working with TCP Sockets

ISBN:9787115330529

作者:[加] Jesse Storimer

译者:门 佳

出版社:人民邮电出版社

出版时间:2013-10

评价:☆☆☆

挺薄挺小也挺简单的一本书,相当与将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作为各自的读取长度。

线程和进程都可以用于并行操作,但是方式大不相同。没有万能药,究竟用哪个取决于实际情况。

就生成而言,线程的生成成本要低得多。生成一个进程需要创建原始进程所拥有的一切资源的副本。线程以进程为单位,多个线程都存在于同一个进程中。由于多个线程共享内存,无需创建副本,因而线程的生成速度要快得多。

因为线程共享内存,当使用会被多个线程访问的数据结构时,一定要多加小心。这通常意味着要在线程之间使用互斥量、锁和同步访问。进程就无需如此了,因为每个进程都有自己的一份资源副本。

comments powered by Disqus