做网站怎么样,广州市南沙区基本建设办公室网站,wikidot怎么建设网站,网页设计与制作属于什么专业原生 JDK 网络编程 BIO BIO#xff0c;意为 Blocking I/O#xff0c;即阻塞的 I/O。 BIO 基本上就是我们上面所说的生活场景的朴素实现。在 BIO 中类 ServerSocket 负责绑定 IP 地址#xff0c;启动监听端口#xff0c;等待客户连接#xff1b;客户端 Socket 类的实例…原生 JDK 网络编程 BIO BIO意为 Blocking I/O即阻塞的 I/O。 BIO 基本上就是我们上面所说的生活场景的朴素实现。在 BIO 中类 ServerSocket 负责绑定 IP 地址启动监听端口等待客户连接客户端 Socket 类的实例发起连接操作ServerSocket接受连接后产生一个新的服务端 socket 实例负责和客户端 socket 实例通过输入和输出流进 行通信。 bio 的阻塞主要体现在两个地方。
若一个服务器启动就绪那么主线程就一直在等待着客户端的连接这个等待过程中主线程就一直在阻塞。在连接建立之后在读取到 socket 信息之前线程也是一直在等待一直处于阻塞的状态下的。
这一点可以通过 cn.tuling.bio 下的 ServerSingle.java 服务端程序看出启动该程序后启动一个 Client 程序实例并让这个 Client 阻塞住位置就在向服务器输出具体请求之前再启动一个新的Client 程序实例会发现尽管新的 Client实例连接上了服务器但是ServerSingle服务端程序仿佛无感知一样为何因为执行的主线程被阻塞了一直在等待第一个 Client实例发送消息过来。 所以在 BIO 通信里我们往往会在服务器的实现上结合线程来处理连接以及和客户端的通信。