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作为各自的读取长度。
线程和进程都可以用于并行操作,但是方式大不相同。没有万能药,究竟用哪个取决于实际情况。
就生成而言,线程的生成成本要低得多。生成一个进程需要创建原始进程所拥有的一切资源的副本。线程以进程为单位,多个线程都存在于同一个进程中。由于多个线程共享内存,无需创建副本,因而线程的生成速度要快得多。
因为线程共享内存,当使用会被多个线程访问的数据结构时,一定要多加小心。这通常意味着要在线程之间使用互斥量、锁和同步访问。进程就无需如此了,因为每个进程都有自己的一份资源副本。