快过年啦,估计很多朋友已在摸鱼的路上。而我为了兄弟们年后的追逐,却在苦苦寻觅、规划,导致文章更新晚了些,各位猿粉谅解。
上期分享,我们结合新春送祝福的场景,通过一坨坨的代码让 BIO、NIO 编程过程呈现的淋漓尽致。
本期分享,通过画几张图,再聊 IO 之 Socket 编程的哪些事儿(小猿舞剑,上期意在代码,这期意在图)。
Socket 翻译为插口、槽,名字很有意义,一旦插入网线进行连接,我们的代码便能够通讯。
如图示意,每个 Socket 都包含两条线,也就是两个流(输入流和输出流)。其实建立网络连接就类似电话系统,一端给另一端打电话(port 就像电话号码),而且一直在监听是不是通了,是不是说话啦。
了解过网络底层协议的都知道,通过使用 Socket,使得开发变得简单了很多,因为 Socket 隐藏了大量的网络开发的细节。其实,对于 Java 程序而言,网络的 IO 就像操作顺序文件的 IO 一样。