Java BIO基本介绍 BIO编程简单流程 Java BIO应用实例
BIO编程简单流程 服务器启动一个ServerSocket 客户端启动Socket对服务器进行通讯,默认情况下服务器端需要对每个客户端建立一个线程与之通讯 客户端发出请求后,先咨询服务器是否有线程响应,如果没有则会等待,或者被拒绝 如果有响应,客户端线程会等待请求结束后,在继续执行(阻塞型)
Java BIO应用实例 使用BIO模型编写一个服务器端,监听6666宽口,当有客户端连接时,就启动一个线程与之通讯 要求使用线程池机制改善,可以连接多个客户端 服务器端可以接收客户端发送的数据(telnet方式即可)
客户端发送方式 telnet 127.0.0.1 6666
每个请求都需要创建独立的线程,与对应的客户端进行数据Read,业务处理,数据Write 并发数较大时,需要创建大量线程来处理连接,系统资源占用较大 建立连接后,如果当前线程没有数据可读,则线程就阻塞在Read操作上,造成线程资源浪费
浏览器与客户端通信用的是http协议,直接发是收不到的
服务端程序这样写,如果需要获取客户端请求 使用accept方法。是一个阻塞的方法,直到有一个连接连过来
客户端没有用到ServerSocket,直接创建socket对象