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

接单做一个网站多少钱如何查网站的百度快照

接单做一个网站多少钱,如何查网站的百度快照,深圳网站建设外包,中国建设银行昆山支行网站1.Selector和Channel关系 Selector一般称为选择器,也叫多路复用器,NIO的核心组件,用于检查一个或多个Channel的状态是否处于可读、可写的状态。 2.可选择通道 (1)不是所有的channel都能被selector复用,…

1.Selector和Channel关系

Selector一般称为选择器,也叫多路复用器,NIO的核心组件,用于检查一个或多个Channel的状态是否处于可读、可写的状态。
Selector

2.可选择通道

(1)不是所有的channel都能被selector复用,就是要看channel是否继承SelectableChannel,如果继承了就是可以复用。例如:FileChannel是不能被selector复用的
(2)一个通道可以被注册到多个选择骑上,但每个选择器只能被注册一次。在注册的时候,需要指定通道那些操作是选择器感兴趣的。
在这里插入图片描述

3.Channel注册到Selector
  1. Channel.register(Selector sel, int ops) 方法:将一个通道注册到一个选择器上。第一个参数,指定通道要注册的选择器。第二个参数指定选择器需要查询的通道操作。
  2. 可以供选择器查询的通道操作,包括如下四种(可以通过位或操作符表示多种操作类型感兴趣):
    (1)可读 SelectionKey.OP_READ
    (2)可写SelectionKey.OP_WRITE
    (3)连接SelectionKey.OP_CONNECT
    (4)接收SelectionKey.OP_ACCEPT
3.1 选择键(SelectionKey)

(1)Channel注册后,一旦通道处于某种就绪的状态,就可以被选择器查询到。
(2)Selector不断查询Channel中操作的就绪状态,并挑选感兴趣的操作就绪状态,并放入选择键集合。
(3)一个选择键包含了特定通道域特定选择器之间的注册关系。
NIO就是根据对应的选择键,进行不同的业务逻辑处理。

3.2 Selector的使用方法

(1) Channel必须处于非阻塞模式下,否则会抛出IllegalBlockingModeException
(2)一个通道不一定支持所有的四种操作,比如ServerSocketChannel支持Accept操作,SocketChannel则不支持。可通过validOps()获取支持的操作集合。

  1. 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.轮询查询就绪操作

//查询已经就绪通道操作Set<SelectionKey> selectionKeys = sl.selectedKeys(); // 遍历集合Iterator<SelectionKey> 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) {Set<SelectionKey> selectionKeys = sl.selectedKeys();Iterator<SelectionKey> 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.yayakq.cn/news/862837/

相关文章:

  • 中山 做网站wordpress自定义图片
  • 仿站软件joomla与wordpress
  • 艺术设计教学资源网站建设标准做网站要交百分七十定金
  • 手机数据线东莞网站建设技术支持欧米茄女士手表网站
  • 网站开发公司 经营范围游戏开发物语攻略
  • 搭建网站源码管理咨询的作用
  • 网站定制开发需要什么资质建设集团董事长
  • 网站图片自动切换怎么做正规的饰品行业网站开发
  • 机构网站建设需要交费吗番禺人才网官网
  • 肥西县城乡建设局网站微信公众号关注
  • 做宣传册模板的网站个人网站备注
  • 比较好的网站公司吗关于购物网站开发的开题报告
  • 免费网站后台模板下载陕西省建设工会网站
  • 服装建设网站的原因临沂网站设计
  • 口碑最好的it培训机构苏州首页排名关键词优化
  • 无锡网站制作中心深圳网站优化方式
  • 免费信息网站排名东莞网站设计在哪里
  • 佛山新网站建设服务网址短链接在线生成
  • 成都网站建设价格表wordpress <
  • html如何做自己的网站上海广告公司工资
  • 众筹网站建设需要多少资金个人网站备案可以盈利吗
  • 网站做移动端网站推荐界面
  • 怎么在.Net中做团购网站怎么用自己的电脑搭建网站
  • 公司建设网站费用属于什么费用做cpa一定要有网站吗
  • 电子商务网站建设和维护做百度手机网站关键词排名
  • 阿里外贸平台网站建设免费推广软件
  • 宁波做外贸网站推广seo有名气的优化公司
  • 乐清建站公司做网站需要什么配置服务器
  • 网站群建设 公司网页设计与网站建设案例教程
  • 可以做淘宝店铺开关灯网站青海建筑网站建设公司