加入收藏 | 设为首页 | 会员中心 | 我要投稿 河北网 (https://www.hebeiwang.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 建站 > 正文

BIO和NIO相识几多呢?一路从实践角度从头领略下吧

发布时间:2019-10-24 02:02:43 所属栏目:建站 来源:追逐仰望星空
导读:01 媒介 这段时刻本身在看一些Java中BIO和NIO之类的对象,看了许多博客,发明各类关于NIO的观念说的口不择言头头是道,可以说长短常的完备,可是整个看下来之后,本身对NIO照旧一孔之见的状态,以是这篇文章不会提到许多的观念,而是站在一个实践的角度,
副问题[/!--empirenews.page--]

 01 媒介

这段时刻本身在看一些Java中BIO和NIO之类的对象,看了许多博客,发明各类关于NIO的观念说的口不择言头头是道,可以说长短常的完备,可是整个看下来之后,本身对NIO照旧一孔之见的状态,以是这篇文章不会提到许多的观念,而是站在一个实践的角度,写一些我本身关于NIO的看法,站在实践事后的高度下再归去看观念,应该对观念会有一个更好的领略。

BIO和NIO相识几多呢?一路从实践角度从头领略下吧

02 实现一个浅显单线程处事器

要讲大白BIO和NIO,起首我们应该本身实现一个浅显的处事器,不消太伟大,单线程即可。

2.1 为什么行使单线程作为演示?

由于在单线程情形下可以很好地比拟出BIO和NIO的一个区别,虽然我也会演示在现真相形中BIO的所谓一个哀求对应一个线程的状况。

2.2 处事端

  1. public class Server { 
  2.     public static void main(String[] args) { 
  3.         byte[] buffer = new byte[1024]; 
  4.         try { 
  5.             ServerSocket serverSocket = new ServerSocket(8080); 
  6.             System.out.println("处事器已启动并监听8080端口"); 
  7.             while (true) { 
  8.                 System.out.println(); 
  9.                 System.out.println("处事器正在守候毗连..."); 
  10.                 Socket socket = serverSocket.accept(); 
  11.                 System.out.println("处事器已吸取到毗连哀求..."); 
  12.                 System.out.println(); 
  13.                 System.out.println("处事器正在守候数据..."); 
  14.                 socket.getInputStream().read(buffer); 
  15.                 System.out.println("处事器已经吸取到数据"); 
  16.                 System.out.println(); 
  17.                 String content = new String(buffer); 
  18.                 System.out.println("吸取到的数据:" + content); 
  19.             } 
  20.         } catch (IOException e) { 
  21.             // TODO Auto-generated catch block 
  22.             e.printStackTrace(); 
  23.         } 
  24.     } 

2.3 客户端

  1. public class Consumer { 
  2.     public static void main(String[] args) { 
  3.         try { 
  4.             Socket socket = new Socket("127.0.0.1",8080); 
  5.             socket.getOutputStream().write("向处事器发数据".getBytes()); 
  6.             socket.close(); 
  7.         } catch (IOException e) { 
  8.             // TODO Auto-generated catch block 
  9.             e.printStackTrace(); 
  10.         } 
  11.     } 

2.4 代码理会

(编辑:河北网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读