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

网站设计流程详细步骤个人网站建设开题报告

网站设计流程详细步骤,个人网站建设开题报告,上海建设银行官网网站首页,工业产品设计怎样1.Selector和Channel关系 Selector一般称为选择器#xff0c;也叫多路复用器#xff0c;NIO的核心组件#xff0c;用于检查一个或多个Channel的状态是否处于可读、可写的状态。 2.可选择通道 #xff08;1#xff09;不是所有的channel都能被selector复用#xff0c;…1.Selector和Channel关系 Selector一般称为选择器也叫多路复用器NIO的核心组件用于检查一个或多个Channel的状态是否处于可读、可写的状态。 2.可选择通道 1不是所有的channel都能被selector复用就是要看channel是否继承SelectableChannel如果继承了就是可以复用。例如FileChannel是不能被selector复用的。 2一个通道可以被注册到多个选择骑上但每个选择器只能被注册一次。在注册的时候需要指定通道那些操作是选择器感兴趣的。 3.Channel注册到Selector Channel.register(Selector sel, int ops) 方法将一个通道注册到一个选择器上。第一个参数指定通道要注册的选择器。第二个参数指定选择器需要查询的通道操作。可以供选择器查询的通道操作包括如下四种可以通过位或操作符表示多种操作类型感兴趣 1可读 SelectionKey.OP_READ 2可写SelectionKey.OP_WRITE 3连接SelectionKey.OP_CONNECT 4接收SelectionKey.OP_ACCEPT 3.1 选择键SelectionKey 1Channel注册后一旦通道处于某种就绪的状态就可以被选择器查询到。 2Selector不断查询Channel中操作的就绪状态并挑选感兴趣的操作就绪状态并放入选择键集合。 3一个选择键包含了特定通道域特定选择器之间的注册关系。 NIO就是根据对应的选择键进行不同的业务逻辑处理。 3.2 Selector的使用方法 (1) Channel必须处于非阻塞模式下否则会抛出IllegalBlockingModeException (2)一个通道不一定支持所有的四种操作比如ServerSocketChannel支持Accept操作SocketChannel则不支持。可通过validOps()获取支持的操作集合。 Selector的创建 // 创建SelectorSelector sl Selector.open();// 创建通道ServerSocketChannel serverSocketChannel ServerSocketChannel.open();// 非阻塞serverSocketChannel.configureBlocking(false);// 绑定连接serverSocketChannel.bind(new InetSocketAddress(9999));//将通道注册到选择器上serverSocketChannel.register(sl, SelectionKey.OP_ACCEPT);System.out.println(serverSocketChannel.validOps());2.轮询查询就绪操作 //查询已经就绪通道操作SetSelectionKey selectionKeys sl.selectedKeys(); // 遍历集合IteratorSelectionKey iterator selectionKeys.iterator();while (iterator.hasNext()) {SelectionKey next iterator.next();// 判断key的就绪状态操作if (next.isAcceptable()) {} else if (next.isConnectable()) {} else if (next.isReadable()) {} else {}iterator.remove();}4 实验案例 import com.sun.org.apache.xerces.internal.util.SynchronizedSymbolTable; import org.junit.jupiter.api.Test;import java.io.IOException; import java.net.InetSocketAddress; import java.nio.ByteBuffer; import java.nio.channels.*; import java.util.Date; import java.util.Iterator; import java.util.Set;/*** Des* Date*/ public class Demo2 {Test// 客户端代码public void client() throws IOException {// 获取通道绑定主机和端口号SocketChannel socketChannel SocketChannel.open(new InetSocketAddress(127.0.0.1, 8080));// 切换为非阻塞模式socketChannel.configureBlocking(false);// 创建bufferByteBuffer byteBuffer ByteBuffer.allocate(1024);// 写入bufferbyteBuffer.put(new Date().toString().getBytes());// 读写模式转换byteBuffer.flip();// channel写入数据socketChannel.write(byteBuffer);// 清空bufferbyteBuffer.clear();}Test// 客户端代码public void Serverdemo() throws IOException {// 获取通道绑定主机和端口号ServerSocketChannel serverSocketChannel ServerSocketChannel.open();// 非阻塞serverSocketChannel.configureBlocking(false);// 创建bufferByteBuffer byteBuffer ByteBuffer.allocate(1024);// 绑定连接serverSocketChannel.bind(new InetSocketAddress(8080));// 获取selector选择器Selector sl Selector.open();// 通道注册到选择器并进行监听serverSocketChannel.register(sl, SelectionKey.OP_ACCEPT );// 选择器进行轮询while (sl.select() 0) {SetSelectionKey selectionKeys sl.selectedKeys();IteratorSelectionKey iterator selectionKeys.iterator();while (iterator.hasNext()) {SelectionKey next iterator.next();// 判断何种类型操作if (next.isAcceptable()) {// 获取连接SocketChannel accpet serverSocketChannel.accept();//切换非阻塞模式accpet.configureBlocking(false);// 注册accpet.register(sl, SelectionKey.OP_READ);} else if (next.isReadable()) {SocketChannel socketChannel (SocketChannel) next.channel();// 读取数据int length 0;while ((length socketChannel.read(byteBuffer)) 0) {byteBuffer.flip();System.out.println(receiver new String(byteBuffer.array(), 0, length));}}}iterator.remove();}}}
http://www.hkea.cn/news/14391944/

相关文章:

  • 深圳自定义网站开发南开做网站
  • 数据分析网站开发福州志愿者官方网站怎么做
  • 网站开发公司资质wordpress site-name
  • 网站中弹出广告怎么做的网站建设div ass
  • 西安旅游网站建设梧州市建设局网站
  • 公司网站被百度转码了为什么wordpress安装成了英文版
  • 网站升级通知自动跳跃wordpress个人博客前台模板下载
  • 吉林省住房和城乡建设部网站做跨境电商需要多少钱
  • 做网站还是app省钱企业网站建设公司电话成都
  • 泉州做网站价格如何做繁体字网站
  • 无锡市做网站什么是展示型网站建设
  • 物流网站怎么做青岛胶东建设国际机场网站
  • 数码电子产品网站名称营销网站开发找哪家
  • 网站建设及网站推广企业网站的建设公司
  • 找别人做网站一般注意什么网站开发费用一般是多少
  • 人人设计网官方网站上海发布公众号下载安装
  • 网站开始开发阶段的主要流程昌平电子网站建设
  • 网站后台怎么修改密码wordpress音乐站
  • 网站建设 标书做一个网站成本要多少钱
  • 汽车网站模版网站做兼容处理怎么设置
  • asp网站怎么做301wordpress主题 移动端
  • 游戏网站建设平台十大网络舆情案例
  • 购物网站源代码营销型网站优势
  • 南昌市会做网站有哪几家做设计接私活的网站
  • 泰安服装网站建设邯郸网站建设哪儿好
  • 如何采集网站内容深圳地区网站建设
  • 发布培训的免费网站模板网站建设工具品牌有
  • 网站建设网站软件有哪些网络营销专业培训机构
  • 网站更新seo手机网站开发框架
  • 阜阳哪里做网站的多哪些网站收录排名好