当前位置: 首页 > news >正文

昆山网页网站制作百度站长平台有哪些功能

昆山网页网站制作,百度站长平台有哪些功能,免费动态域名解析软件,wordpress 小刀娱乐文章目录 Pre概述分散/聚集 I/O分散/聚集的应用聚集写入Code Pre 庖丁解牛#xff1a;NIO核心概念与机制详解 01 庖丁解牛#xff1a;NIO核心概念与机制详解 02 _ 缓冲区的细节实现 庖丁解牛#xff1a;NIO核心概念与机制详解 03 _ 缓冲区分配、包装和分片 概述 分散/聚… 文章目录 Pre概述分散/聚集 I/O分散/聚集的应用聚集写入Code Pre 庖丁解牛NIO核心概念与机制详解 01 庖丁解牛NIO核心概念与机制详解 02 _ 缓冲区的细节实现 庖丁解牛NIO核心概念与机制详解 03 _ 缓冲区分配、包装和分片 概述 分散/聚集 I/O 是使用多个而不是单个缓冲区来保存数据的读写方法。 一个分散的读取就像一个常规通道读取只不过它是将数据读到一个缓冲区数组中而不是读到单个缓冲区中。同样地一个聚集写入是向缓冲区数组而不是向单个缓冲区写入数据。 分散/聚集 I/O 对于将数据流划分为单独的部分很有用这有助于实现复杂的数据格式。 分散/聚集 I/O 通道可以有选择地实现两个新的接口 ScatteringByteChannel 和 GatheringByteChannel 一个 ScatteringByteChannel 是一个具有两个附加读方法的通道 long read( ByteBuffer[] dsts ); long read( ByteBuffer[] dsts, int offset, int length );这些 long read() 方法很像标准的 read 方法只不过它们不是取单个缓冲区而是取一个缓冲区数组。 在 分散读取 中通道依次填充每个缓冲区。填满一个缓冲区后它就开始填充下一个。在某种意义上缓冲区数组就像一个大缓冲区。 分散/聚集的应用 分散/聚集 I/O 对于将数据划分为几个部分很有用。 例如 可能在编写一个使用消息对象的网络应用程序每一个消息被划分为固定长度的头部和固定长度的正文。可以创建一个刚好可以容纳头部的缓冲区和另一个刚好可以容难正文的缓冲区。当你将它们放入一个数组中并使用分散读取来向它们读入消息时头部和正文将整齐地划分到这两个缓冲区中。 我们从缓冲区所得到的方便性对于缓冲区数组同样有效。因为每一个缓冲区都跟踪自己还可以接受多少数据所以分散读取会自动找到有空间接受数据的第一个缓冲区。在这个缓冲区填满后它就会移动到下一个缓冲区。 聚集写入 聚集写入 类似于分散读取只不过是用来写入。它也有接受缓冲区数组的方法 long write( ByteBuffer[] srcs ); long write( ByteBuffer[] srcs, int offset, int length );聚集写对于把一组单独的缓冲区中组成单个数据流很有用。为了与上面的消息例子保持一致我们可以使用聚集写入来自动将网络消息的各个部分组装为单个数据流以便跨越网络传输消息。 Code import java.io.*; import java.net.*; import java.nio.*; import java.nio.channels.*;public class UseScatterGather {static private final int firstHeaderLength 2;static private final int secondHeaderLength 4;static private final int bodyLength 6;static public void main( String args[] ) throws Exception {if (args.length!1) {System.err.println( Usage: java UseScatterGather port );System.exit( 1 );}int port Integer.parseInt( args[0] );ServerSocketChannel ssc ServerSocketChannel.open();InetSocketAddress address new InetSocketAddress( port );ssc.socket().bind( address );int messageLength firstHeaderLength secondHeaderLength bodyLength;ByteBuffer buffers[] new ByteBuffer[3];buffers[0] ByteBuffer.allocate( firstHeaderLength );buffers[1] ByteBuffer.allocate( secondHeaderLength );buffers[2] ByteBuffer.allocate( bodyLength );SocketChannel sc ssc.accept();while (true) {// Scatter-read into buffersint bytesRead 0;while (bytesRead messageLength) {long r sc.read( buffers );bytesRead r;System.out.println( r r );for (int i0; ibuffers.length; i) {ByteBuffer bb buffers[i];System.out.println( b i bb.position() bb.limit() );}}// Process message here// Flip buffersfor (int i0; ibuffers.length; i) {ByteBuffer bb buffers[i];bb.flip();}// Scatter-write back outlong bytesWritten 0;while (bytesWrittenmessageLength) {long r sc.write( buffers );bytesWritten r;}// Clear buffersfor (int i0; ibuffers.length; i) {ByteBuffer bb buffers[i];bb.clear();}System.out.println( bytesRead bytesWritten messageLength );}} }
http://www.dnsts.com.cn/news/239465.html

相关文章:

  • 昆明建设网站的公司曲靖今天最新通知
  • 毕设做网站是不是太low网站建设方案范文8篇
  • 阿里巴巴外贸网站论坛网络营销的特点包括哪些?
  • 苗木推广做哪个网站好wordpress安装系统
  • 网站开发iis怎么配置网站专题页面文案设计
  • 做网站需要固定ip北京微信网站制作费用
  • 国外外贸网站有哪些问题网页设计的流程ui
  • 金山建设机械网站评论回复网站怎么做
  • 湖南建立网站营销策划WordPress轻量企业主题
  • 怎么做废品网站展示类网站开发费用
  • 响应式app网站模板网站程序更换
  • 网站建设的资金黑群辉建设个人网站
  • 网站建设需要域名企业网络营销分析报告
  • 专业外包网站建设公司排名发表文章静态网页模板
  • 广州网站建设360元wordpress 3.9.2 漏洞
  • 长春网站建设net网站建设报价表模板
  • 七台河北京网站建设站长工具seo综合查询外部链接数量
  • 多光营销软件网站个人简历模板完整版
  • 文山州住房和城乡建设网站seo搜索优化工程师招聘
  • 嘉兴网站平台建设设计说明生成器
  • 公司做网站哪个好用php做网站要用构架吗
  • 潍坊网站建设中公有网站建设的虚拟主机管理系统
  • 宜昌网站建设厂家win2008安装wordpress
  • 网站建设课设心得推荐家居企业网站建设
  • 做网站需要服务器和什么seo网站关键词优化费用
  • 网站下载不了的视频怎么下载微信网页版官网下载安装
  • 用cdr做网站设计尺寸要多少广州注册公司需要什么资料
  • 做一个网站推广wordpress主题企业
  • 什么是网站建设外包网站建设 设计
  • 广州怎么做网站网页设计与网站建设的区别